upd
This commit is contained in:
142
java/Main.java
142
java/Main.java
@@ -1,10 +1,139 @@
|
|||||||
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user