This commit is contained in:
2026-01-21 11:06:20 +03:00
parent b2f9f59642
commit 124d90535e

View File

@@ -5,7 +5,71 @@ import java.util.Arrays;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
task30(); task35();
}
static void task35() {
/*
Измените предыдущее упражнение так, чтобы метод finalize() обязательно был исполнен.
*/
Task34 task = new Task34();
System.gc();
}
static void task34() {
/*
Создайте класс с методом fin alize(), который выводит сообщение. В методе main() создайте объект вашего класса. Объясните поведение программы.
*/
Task34 task = new Task34();
}
static class Task34 {
Task34() {
System.out.println("Task34 obj created");
}
public void finalize() {
System.out.println("memory cleared. inside finalize");
}
}
static class Task33 {
Task33(int x, String s) {
System.out.println("this is a string constructor: '" + s + "'");
}
Task33(int x) {
this(x, "default");
System.out.println("this is an integer constructor: '" + x + "'");
}
}
static void task33() {
/*
Подготовьте класс с двумя (перегруженными) конструкторами. Используя ключевое слово this, вызовите второй конструктор из первого.
*/
Task33 task1 = new Task33(1);
Task33 task2 = new Task33(2, "hello");
}
static class Task32 {
void method1() {
method2("without 'this' kw");
this.method2("with 'this' kw");
}
void method2(String s) {
System.out.println("from method 2: " + s);
}
}
static void task32() {
/*
Создайте класс с двумя методами. В первом методе дважды вызовите второй метод: один раз без ключевого слова this, а во второй с this - просто для того, чтобы убедиться в работоспособности этого синтаксиса; не используйте этот способ вызова на практике.
*/
Task32 task = new Task32();
task.method1();
} }
static void task31() { static void task31() {