Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 15 additions & 0 deletions src/main/java/lesson_3/Item.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package lesson_3;

public abstract class Item {
protected String name;

public Item(String name) {
this.name = name;
}

public abstract void displayInfo();

public String getName() {
return name;
}
}
50 changes: 50 additions & 0 deletions src/main/java/lesson_3/park/Park.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package lesson_3.park;

import lesson_3.Item;

import java.util.ArrayList;
import java.util.List;

public class Park {
private String parkName;
private List<Attraction> attractions;

public Park(String parkName) {
this.parkName = parkName;
this.attractions = new ArrayList<>();
}

public void addAttraction(String name, String workingHours, double cost) {
attractions.add(new Attraction(name, workingHours, cost));
}

public void showAttractions() {
System.out.println("Парк: " + parkName);
for (Attraction attraction : attractions) {
attraction.displayInfo();
}
}

public String getParkName() {
return parkName;
}

public class Attraction extends Item {
private String workingHours;
private double cost;

public Attraction(String name, String workingHours, double cost) {
super(name);
this.workingHours = workingHours;
this.cost = cost;
}

@Override
public void displayInfo() {
System.out.println("Аттракцион: " + name);
System.out.println("Время работы: " + workingHours);
System.out.println("Стоимость: " + cost);
System.out.println("---------------------------");
}
}
}
22 changes: 22 additions & 0 deletions src/main/java/lesson_3/park/ParkMain.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package lesson_3.park;

public class ParkMain {
public static void main(String[] args) {
Park amusementPark = new Park("Весёлый городок");

amusementPark.addAttraction("Колесо обозрения", "10:00 - 22:00", 300);
amusementPark.addAttraction("Американские горки", "11:00 - 21:00", 500);
amusementPark.addAttraction("Комната страха", "14:00 - 23:00", 400);

Park pokatushkiPark = new Park("Покатушки");

pokatushkiPark.addAttraction("Машинки", "10:00 - 22:00", 200);
pokatushkiPark.addAttraction("Американские горки", "11:00 - 21:00", 500);
pokatushkiPark.addAttraction("Комната страха", "14:00 - 23:00", 400);
pokatushkiPark.addAttraction("Карусель", "10:00 - 22:00", 250);

amusementPark.showAttractions();
System.out.println();
pokatushkiPark.showAttractions();
}
}
32 changes: 32 additions & 0 deletions src/main/java/lesson_3/product/Product.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package lesson_3.product;

import lesson_3.Item;

public class Product extends Item {
private String productionDate;
private String manufacturer;
private String countryOfOrigin;
private double price;
private boolean isReserved;

public Product(String name, String productionDate, String manufacturer,
String countryOfOrigin, double price, boolean isReserved) {
super(name);
this.productionDate = productionDate;
this.manufacturer = manufacturer;
this.countryOfOrigin = countryOfOrigin;
this.price = price;
this.isReserved = isReserved;
}

@Override
public void displayInfo() {
System.out.println("Название: " + name);
System.out.println("Дата производства: " + productionDate);
System.out.println("Производитель: " + manufacturer);
System.out.println("Страна происхождения: " + countryOfOrigin);
System.out.println("Цена: " + price);
System.out.println("Забронировано: " + (isReserved ? "Да" : "Нет"));
System.out.println("---------------------------");
}
}
22 changes: 22 additions & 0 deletions src/main/java/lesson_3/product/ProductMain.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package lesson_3.product;

public class ProductMain {
public static void main(String[] args) {
Product[] productsArray = new Product[5];

productsArray[0] = new Product("Samsung S25 Ultra", "01.02.2025",
"Samsung Corp.", "Korea", 5599, true);
productsArray[1] = new Product("Apple iPhone 15", "15.09.2024",
"Apple Inc.", "USA", 9999, false);
productsArray[2] = new Product("Xiaomi Mi 13", "10.03.2024",
"Xiaomi", "China", 4999, false);
productsArray[3] = new Product("Sony WH-1000XM5", "20.07.2023",
"Sony", "Japan", 2999, true);
productsArray[4] = new Product("Dell XPS 13", "05.11.2023",
"Dell", "USA", 11999, false);

for (Product p : productsArray) {
p.displayInfo();
}
}
}
37 changes: 37 additions & 0 deletions src/main/java/lesson_4/animals/Animal.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package lesson_4.animals;

import lombok.Getter;

public abstract class Animal {
protected String name;
protected int runLimit;
protected int swimLimit;

@Getter
private static int animalsCount = 0;

public Animal(String name, int runLimit, int swimLimit) {
this.name = name;
this.runLimit = runLimit;
this.swimLimit = swimLimit;
animalsCount++;
}

public void run(int distance) {
if (distance <= runLimit) {
System.out.println(name + " пробежал " + distance + " м.");
} else {
System.out.println(name + " не смог пробежать " + distance + " м.");
}
}

public void swim(int distance) {
if (swimLimit == 0) {
System.out.println(name + " не умеет плавать.");
} else if (distance <= swimLimit) {
System.out.println(name + " проплыл " + distance + " м.");
} else {
System.out.println(name + " не смог проплыть " + distance + " м.");
}
}
}
42 changes: 42 additions & 0 deletions src/main/java/lesson_4/animals/AnimalsMain.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package lesson_4.animals;

public class AnimalsMain {
public static void main(String[] args) {
Cat[] cats = {
new Cat("Барсик"),
new Cat("Мурка"),
new Cat("Рыжик")
};

Dog dog = new Dog("Бобик");

Bowl bowl = new Bowl(20);

for (Cat cat : cats) {
cat.eat(bowl, 15);
}

System.out.println();

bowl.addFood(30);
for (Cat cat : cats) {
if (!cat.isFull()) {
cat.eat(bowl, 15);
}
}

System.out.println();

cats[0].run(100);
cats[0].swim(5);

dog.run(400);
dog.swim(8);

System.out.println();

System.out.println("Создано котов: " + Cat.getCatsCount());
System.out.println("Создано собак: " + Dog.getDogsCount());
System.out.println("Всего животных: " + Animal.getAnimalsCount());
}
}
23 changes: 23 additions & 0 deletions src/main/java/lesson_4/animals/Bowl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package lesson_4.animals;

import lombok.Getter;

@Getter
public class Bowl {
private int foodAmount;

public Bowl(int foodAmount) {
this.foodAmount = Math.max(foodAmount, 0);
}

public void decreaseFood(int amount) {
foodAmount = Math.max(foodAmount - amount, 0);
}

public void addFood(int amount) {
if (amount > 0) {
foodAmount += amount;
System.out.println("Добавлено " + amount + " еды. Сейчас в миске: " + foodAmount);
}
}
}
26 changes: 26 additions & 0 deletions src/main/java/lesson_4/animals/Cat.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package lesson_4.animals;

import lombok.Getter;

@Getter
public class Cat extends Animal {
@Getter
private static int catsCount = 0;
private boolean isFull;

public Cat(String name) {
super(name, 200, 0);
this.isFull = false;
catsCount++;
}

public void eat(Bowl bowl, int amount) {
if (bowl.getFoodAmount() >= amount) {
bowl.decreaseFood(amount);
isFull = true;
System.out.println(name + " покушал и теперь сыт.");
} else {
System.out.println(name + " остался голодным. Недостаточно еды ");
}
}
}
13 changes: 13 additions & 0 deletions src/main/java/lesson_4/animals/Dog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package lesson_4.animals;

import lombok.Getter;

public class Dog extends Animal {
@Getter
private static int dogsCount = 0;

public Dog(String name) {
super(name, 500, 10);
dogsCount++;
}
}
20 changes: 20 additions & 0 deletions src/main/java/lesson_4/shapes/Circle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package lesson_4.shapes;

public class Circle extends GeometricFigure {
private double radius;

public Circle(double radius, String fillColor, String borderColor) {
super(fillColor, borderColor);
this.radius = radius;
}

@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}

@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
26 changes: 26 additions & 0 deletions src/main/java/lesson_4/shapes/GeometricFigure.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package lesson_4.shapes;

public abstract class GeometricFigure implements Measurable {
protected String fillColor;
protected String borderColor;

public GeometricFigure(String fillColor, String borderColor) {
this.fillColor = fillColor;
this.borderColor = borderColor;
}

public String getFillColor() {
return fillColor;
}

public String getBorderColor() {
return borderColor;
}

public void printFullInfo() {
printInfo();
System.out.println("Цвет заливки: " + fillColor);
System.out.println("Цвет границы: " + borderColor);
System.out.println("---------------------------");
}
}
11 changes: 11 additions & 0 deletions src/main/java/lesson_4/shapes/Measurable.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package lesson_4.shapes;

public interface Measurable {
double getPerimeter();
double getArea();

default void printInfo() {
System.out.println("Периметр: " + getPerimeter());
System.out.println("Площадь: " + getArea());
}
}
22 changes: 22 additions & 0 deletions src/main/java/lesson_4/shapes/Rectangle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package lesson_4.shapes;

public class Rectangle extends GeometricFigure {
private double width;
private double height;

public Rectangle(double width, double height, String fillColor, String borderColor) {
super(fillColor, borderColor);
this.width = width;
this.height = height;
}

@Override
public double getPerimeter() {
return 2 * (width + height);
}

@Override
public double getArea() {
return width * height;
}
}
Loading