This commit is contained in:
2026-01-20 21:55:29 +03:00
parent 3868927c29
commit b2f9f59642

View File

@@ -1,12 +1,141 @@
import java.lang.reflect.Array;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.Arrays; import java.util.Arrays;
// page: 154
public class Main { public class Main {
public static void main(String[] args) { 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) { static void task24(String[] args) {
/* /*
Вампирами называются числа, состоящие из четного количества цифр и полученные перемножением пары чисел, каждое из которых содержит половину цифр результата. Цифры берутся из исходного числа в произвольном порядке, завершающие нули недопустимы. Примеры: Вампирами называются числа, состоящие из четного количества цифр и полученные перемножением пары чисел, каждое из которых содержит половину цифр результата. Цифры берутся из исходного числа в произвольном порядке, завершающие нули недопустимы. Примеры:
@@ -18,13 +147,14 @@ public class Main {
for (int x = 10; x < 100; x++) { for (int x = 10; x < 100; x++) {
for (int y = 10; y < 100; y++) { 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(); char[] claws_array = (Integer.toString(x) + Integer.toString(y)).toCharArray();
Arrays.sort(claws); Arrays.sort(claws_array);
String String claws = new String(claws_array);
char[] vampire_array = Integer.toString(x * y).toCharArray(); 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)) { if (claws.equals(vampire)) {
System.out.println(x + " * " + y + " = " + x * y); System.out.println(x + " * " + y + " = " + x * y);