Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
cc4f9ec
lesson 14 task1
thirteenth87 Sep 2, 2025
8bb75f9
исправление импортируемых классов
thirteenth87 Sep 4, 2025
e7f2efb
исправление импортируемых классов
thirteenth87 Sep 4, 2025
2322893
1 task 16 lesson
thirteenth87 Sep 22, 2025
0c0fc30
2 task 16 lesson
thirteenth87 Sep 22, 2025
d52e580
task 3, lesson 16
thirteenth87 Sep 22, 2025
34c4b86
1, 2 tasks 17 lesson
thirteenth87 Sep 23, 2025
5527c4c
task 3, lesson 17
thirteenth87 Sep 23, 2025
7aa449e
Подгрузка повторяющейся задачи для удобства копирования
thirteenth87 Sep 24, 2025
bc06cc6
Подгрузка повторяющейся задачи для удобства копирования
thirteenth87 Sep 24, 2025
c56d0f9
task 1, lesson 18
thirteenth87 Sep 24, 2025
6a189a9
task 1, lesson 19
thirteenth87 Sep 26, 2025
3ee8277
task 1, lesson 20
thirteenth87 Sep 30, 2025
a24f477
task 1, lesson 20
thirteenth87 Sep 30, 2025
c33625c
task 2, lesson 20
thirteenth87 Sep 30, 2025
7e6a021
task 2, lesson 20
thirteenth87 Sep 30, 2025
ae64ad9
task 3, lesson 20
thirteenth87 Sep 30, 2025
5fd9b89
task 1, lesson 25
thirteenth87 Oct 6, 2025
fa39dd3
task 2, lesson 25
thirteenth87 Oct 6, 2025
78d9aad
lesson 26
thirteenth87 Oct 6, 2025
72b8fca
lesson 28, 29
thirteenth87 Oct 8, 2025
0c6a29e
lesson 30
thirteenth87 Oct 22, 2025
1d56bfd
lesson 31, все в одной (1)
thirteenth87 Oct 23, 2025
7486be1
lesson 33
thirteenth87 Oct 29, 2025
1296bd7
lesson 34
thirteenth87 Nov 5, 2025
833db83
lesson 34
thirteenth87 Nov 5, 2025
d313b89
lesson 38, 40
thirteenth87 Nov 17, 2025
c425efd
lesson 41,42
thirteenth87 Dec 4, 2025
706f754
lesson 43,46
thirteenth87 Dec 11, 2025
a270e8f
lesson 46, task 1, 2
thirteenth87 Dec 12, 2025
626ec19
lesson 46, task 3
thirteenth87 Dec 12, 2025
b493c57
lesson 46, task 2
thirteenth87 Dec 12, 2025
4ac8ab6
lesson 46, task 2
thirteenth87 Dec 12, 2025
c9b4ef2
lesson 46, task 3
thirteenth87 Dec 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions .idea/practical-tasks.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

50 changes: 50 additions & 0 deletions resources/files/lesson32/carCatalog.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
Car 1
number: RR-111-RR
year: 2015
color: yellow
actualTechnicalInspection: actual
Car 2
number: RR-222-RR
year: 2016
color: yellow
actualTechnicalInspection: actual
Car 3
number: RR-333-RR
year: 2017
color: yellow
actualTechnicalInspection: actual
Car 4
number: RR-444-RR
year: 2018
color: yellow
actualTechnicalInspection: actual
Car 5
number: RR-555-RR
year: 2018
color: yellow
actualTechnicalInspection: actual
Car 6
number: RR-666-RR
year: 2018
color: yellow
actualTechnicalInspection: actual
Car 7
number: RR-777-RR
year: 2018
color: yellow
actualTechnicalInspection: actual
Car 8
number: RR-888-RR
year: 2018
color: yellow
actualTechnicalInspection: actual
Car 9
number: RR-999-RR
year: 2018
color: yellow
actualTechnicalInspection: actual
Car 10
number: RR-000-RR
year: 2018
color: yellow
actualTechnicalInspection: actual
32 changes: 32 additions & 0 deletions src/com/walking/lesson13_inheritance/task2/Main.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.walking.lesson13_inheritance.task2;

import com.walking.lesson13_inheritance.task2.model.Animal;
import com.walking.lesson13_inheritance.task2.model.Cat;
import com.walking.lesson13_inheritance.task2.model.Cow;
import com.walking.lesson13_inheritance.task2.model.Dog;

/**
* Реализуйте класс Animal. Реализуйте его наследников: Dog, Cat, Cow.
* Каждый из наследников должен содержать свой метод: woof(), meow() и moo() соответственно.
Expand All @@ -22,5 +27,32 @@
*/
public class Main {
public static void main(String[] args) {
Animal[] animals = new Animal[]{new Cat(), new Dog(), new Cow()};

soundAll(animals);
}

private static void soundAll(Animal[] animals) {
for (Animal animal : animals) {
sound(animal);
}
}

// Используя поле класса Animal, определяем, какой настоящий класс обрабатываемого объекта
private static void sound(Animal animal) {
switch (animal.getClassName()) {
case Cat.CAT_CLASS_NAME:
((Cat) animal).meow();
break;
case Dog.DOG_CLASS_NAME:
((Dog) animal).woof();
break;
case Cow.COW_CLASS_NAME:
((Cow) animal).moo();
break;
default: //На случай, если был создан объект Animal, а не наследника.
// Или если наследник неизвестен
System.out.println("Unknown animal!");
}
}
}
23 changes: 23 additions & 0 deletions src/com/walking/lesson13_inheritance/task2/model/Animal.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.walking.lesson13_inheritance.task2.model;

public class Animal {
// Поле, которое будет хранить имя класса, чтобы идентифицировать наследника
private final String className;
// Выполнение доп. условия. Если методы наследников лишь обращаются к sound() -
// нам необходимо делать вывод звука животного в этом классе. Значит, звук животного
// нужно куда-то записать
private final String sound;

protected Animal(String className, String sound) {
this.className = className;
this.sound = sound;
}

protected void sound() {
System.out.println(sound);
}

public String getClassName() {
return className;
}
}
15 changes: 15 additions & 0 deletions src/com/walking/lesson13_inheritance/task2/model/Cat.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.walking.lesson13_inheritance.task2.model;

public class Cat extends Animal {
public static final String CAT_CLASS_NAME = "Cat";

// Передаем параметры в super внутри конструктора, а не принимая их в параметры Cat(),
// чтобы избежать ошибочного поведения при использовании этого класса
public Cat() {
super(CAT_CLASS_NAME, "meow");
}

public void meow() {
sound();
}
}
13 changes: 13 additions & 0 deletions src/com/walking/lesson13_inheritance/task2/model/Cow.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.walking.lesson13_inheritance.task2.model;

public class Cow extends Animal {
public static final String COW_CLASS_NAME = "Cow";

public Cow() {
super(COW_CLASS_NAME, "moo");
}

public void moo() {
sound();
}
}
13 changes: 13 additions & 0 deletions src/com/walking/lesson13_inheritance/task2/model/Dog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.walking.lesson13_inheritance.task2.model;

public class Dog extends Animal {
public static final String DOG_CLASS_NAME = "Dog";

public Dog() {
super(DOG_CLASS_NAME, "woof");
}

public void woof() {
sound();
}
}
44 changes: 44 additions & 0 deletions src/com/walking/lesson14_polymorphism/task1/Main.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.walking.lesson14_polymorphism.task1;

import com.walking.lesson14_polymorphism.task1.regularFigure.RegularFigure;
import com.walking.lesson14_polymorphism.task1.regularFigure.RegularTriangle;
import com.walking.lesson14_polymorphism.task1.regularFigure.Square;
import java.util.Scanner;

/**
* Реализуйте класс «Правильная фигура».
* Для него создайте классы-наследники «Треугольник» и «Квадрат».
Expand All @@ -11,6 +16,45 @@
* Обратите внимание, символ '\' в Java необходимо экранировать: '\\'.
*/
public class Main {
public static final String REQUIRING_MESSAGE_SIZE = "Enter figure`s size: ";
public static final String REQUIRING_MESSAGE_FIGURE = "Enter required shape: ";

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

int size = requireInt(scanner);
String figure = requireString(scanner);

scanner.close();

RegularFigure regularFigure = createObjFigure(size, figure);

regularFigure.printFigure();
}

private static RegularFigure createObjFigure(int size, String figure) {
if (size < 1) {
return new RegularFigure(size);
}
switch (figure) {
case RegularTriangle.NAME_TRIANGLE:
return new RegularTriangle(size);
case Square.NAME_SQUARE:
return new Square(size);
default:
return new RegularFigure(size);
}
}

static int requireInt(Scanner scanner) {
System.out.print(REQUIRING_MESSAGE_SIZE);

return scanner.nextInt();
}

public static String requireString(Scanner scanner) {
System.out.print(REQUIRING_MESSAGE_FIGURE);

return scanner.next();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.walking.lesson14_polymorphism.task1.regularFigure;

import java.util.Scanner;

public class RegularFigure {
final String EMPTY_STRING = "";
final String HORIZONTAL_ELEMENT = "--";
final String NEW_LINE_SYMBOL = "\n";
final String EMPTY_ELEMENT = " ";
final int size;


public RegularFigure(int size) {
this.size = size;
}

public void printFigure() {
System.out.println("Unknown figure");
}

String createHorizontalLine() {
String horizontalLine = EMPTY_ELEMENT;

for (int i = 0; i < size; i++) {
horizontalLine += HORIZONTAL_ELEMENT;
}

horizontalLine += EMPTY_ELEMENT + NEW_LINE_SYMBOL;

return horizontalLine;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package com.walking.lesson14_polymorphism.task1.regularFigure;

public class RegularTriangle extends RegularFigure {
final String RIGHT_SIDE_TRIANGLE = "\\";
final String LEFT_SIDE_TRIANGLE = "/";
public static final String NAME_TRIANGLE = "triangle";

public RegularTriangle(int size) {
super(size);
}

public void printFigure() {
String horizontalLine = createHorizontalLine();
String verticalLines = createVerticalLines();

System.out.println(verticalLines + horizontalLine);
}

@Override
String createHorizontalLine() {
String horizontalLine = EMPTY_STRING;

for (int i = 0; i < size; i++) {
horizontalLine += HORIZONTAL_ELEMENT;
}

horizontalLine += EMPTY_ELEMENT + NEW_LINE_SYMBOL;

return horizontalLine;
}

String createVerticalLines() {
String verticalLines = EMPTY_STRING;

for (int i = 0; i < size; i++) {
verticalLines += getVerticalLines(i);
}
return verticalLines;
}

String getVerticalLines(int numLines) {
String verticalLinesUnit = EMPTY_STRING;

for (int i = 0; i < size; i++) {
if (i == size - numLines - 1) {
verticalLinesUnit += LEFT_SIDE_TRIANGLE;
continue;
}
verticalLinesUnit += EMPTY_ELEMENT;
}

for (int i = 0; i < size; i++) {
if (i == numLines) {
verticalLinesUnit += RIGHT_SIDE_TRIANGLE ;
continue;
}
verticalLinesUnit += EMPTY_ELEMENT;
}

verticalLinesUnit += NEW_LINE_SYMBOL;
return verticalLinesUnit;
}
}
Loading