From 124d90535e498b4b2555f3e4ae890a72dbdfa962 Mon Sep 17 00:00:00 2001 From: me Date: Wed, 21 Jan 2026 11:06:20 +0300 Subject: [PATCH] upd --- java/Main.java | 66 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/java/Main.java b/java/Main.java index 03035ba..1731122 100644 --- a/java/Main.java +++ b/java/Main.java @@ -5,7 +5,71 @@ import java.util.Arrays; public class Main { 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() {