From b2f9f596420396e38333ddbbb4a2f41e8d5764a4 Mon Sep 17 00:00:00 2001 From: me Date: Tue, 20 Jan 2026 21:55:29 +0300 Subject: [PATCH] upd --- java/Main.java | 142 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 136 insertions(+), 6 deletions(-) diff --git a/java/Main.java b/java/Main.java index 0ec5b3f..03035ba 100644 --- a/java/Main.java +++ b/java/Main.java @@ -1,12 +1,141 @@ -import java.lang.reflect.Array; import java.math.BigInteger; import java.util.Arrays; +// page: 154 + public class Main { public static void main(String[] args) { - task24(args); + task30(); } + static void task31() { + /* + Создайте класс без конструктора. Создайте объект этого класса в методе main(), чтобы удостовериться, что конструктор по умолчанию синтезируется автоматически. + */ + Task31 task = new Task31(); + } + + static class Task31 {} + + static void task30() { + /* + Измените предыдущее упражнение так, чтобы два перегруженных метода принимали два аргумента (разных типов) и отличались только порядком их следования в списке аргументов. Проверьте, работает ли это. + */ + Dog dog = new Dog(); + dog.bark("hello", 1); + dog.bark(2, "world"); + } + + static class Dog { + void bark() { + System.out.println("собака лает"); + } + + void bark(int times) { + System.out.println("cобака лает " + times + " раз"); + } + + void bark(double volume) { + System.out.println("cобака воет с громкостью " + volume); + } + + void bark(char mood) { + System.out.println("собака поскуливает"); + } + + void bark(boolean angry) { + System.out.println("собака рычит"); + } + + void bark(String s, int x) { + System.out.println("string '" + s + "' first, number '" + x + "' next"); + } + + void bark(int x, String s) { + System.out.println("number '" + x + "' first, string '" + s + "' next"); + } + } + + static void task29() { + /* + Создайте класс Dog (собака) с перегруженным методом bark() (лай). Метод должен быть перегружен для разных примитивных типов данных с целью вывода сообщения о лае, завывании, поскуливании и т. п. в зависимости от версии перегруженного метода. Напишите метод main(), вызывающий все версии. + */ + Dog dog = new Dog(); + + dog.bark(); + dog.bark(3); + dog.bark(2.5); + dog.bark('s'); + dog.bark(true); + + } + + static class Task28 { + + Task28() { + System.out.println("task28 object was created"); + } + + Task28(String s) { + System.out.println(s + " world"); + } + } + + static void task28() { + /* + Добавьте к классу из упражнения 3 перегруженный конструктор, принимающий в качестве параметра строку (String) и распечатывающий ее вместе с сообщением. + */ + Task28 task1 = new Task28(); + Task28 task2 = new Task28("hello"); + } + + static class Task27 { + Task27() { + System.out.println("Task27 object was created successfully!"); + } + } + + static void task27() { + /* + Создайте класс с конструктором по умолчанию (без параметров), который выводит на экран сообщение. Создайте объект этого класса. + */ + Task27 task = new Task27(); + } + + static class Task26 { + String s1 = "hello"; + String s2; + + Task26 (String s2) { + this.s2 = s2; + } + } + + + static void task26() { + /* + Создайте класс с полем String, инициализируемым в точке определения, и другим полем, инициализируемым конструктором. Чем отличаются эти два подхода? + */ + + Task26 task = new Task26("world"); + System.out.println(task.s1); + System.out.println(task.s2); + + } + + static class Task25 { + String string; + } + + + static void task25() { + /* + Создайте класс с неинициализированной ссылкой на String. Покажите, что Java инициализирует ссылку значением null. + */ + Task25 task = new Task25(); + System.out.println(task.string); + } + static void task24(String[] args) { /* Вампирами называются числа, состоящие из четного количества цифр и полученные перемножением пары чисел, каждое из которых содержит половину цифр результата. Цифры берутся из исходного числа в произвольном порядке, завершающие нули недопустимы. Примеры: @@ -18,13 +147,14 @@ public class Main { for (int x = 10; x < 100; x++) { for (int y = 10; y < 100; y++) { - if (Integer.toString(x * y).length() == 4) { + if ((x < y) && (Integer.toString(x * y).length() == 4)) { char[] claws_array = (Integer.toString(x) + Integer.toString(y)).toCharArray(); - Arrays.sort(claws); - String + Arrays.sort(claws_array); + String claws = new String(claws_array); char[] vampire_array = Integer.toString(x * y).toCharArray(); - Arrays.sort(claws); + Arrays.sort(vampire_array); + String vampire = new String(vampire_array); if (claws.equals(vampire)) { System.out.println(x + " * " + y + " = " + x * y);