diff --git a/proJect/src/main/java/anlov/java/Animal.java b/proJect/src/main/java/anlov/java/Animal.java new file mode 100644 index 0000000..636c52b --- /dev/null +++ b/proJect/src/main/java/anlov/java/Animal.java @@ -0,0 +1,44 @@ +package anlov.java; + +public class Animal { + private String name; + private String color; + + private static int count; + + public Animal(String name, String color) { + ++count; + this.name = name; + this.color = color; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + public static void getCount() { + System.out.println("Количество рожденных животных: " + count); + } + + public void run(int length) { + System.out.println("Животное пробежало:" + length + "метров."); + } + + public void swim(int length) { + System.out.println("Животное проплыло:" + length + "метров."); + } + + +} diff --git a/proJect/src/main/java/anlov/java/Cat.java b/proJect/src/main/java/anlov/java/Cat.java new file mode 100644 index 0000000..471bc61 --- /dev/null +++ b/proJect/src/main/java/anlov/java/Cat.java @@ -0,0 +1,48 @@ +package anlov.java; + +public class Cat extends Animal { + private static int countOfCat; + private boolean satiety; + + public Cat(String name, String color) { + super(name, color); + this.satiety = false; + ++countOfCat; + } + + public static void getCountOfAnimal() { + System.out.println("Количество родившихся кошечек: " + countOfCat); + } + + @Override + public void run(int length) { + if (length > 200) { + System.out.println("Кот пробежал " + 200 + " метров и очень устал)"); + } else if (length < 0) { + System.out.println("Ошибка!"); + } else System.out.println("Кот пробежал " + length + " метров."); + } + + @Override + public void swim(int length) { + System.out.println("К сожалению, котики не умеют плавать("); + } + + public void setSatiety(boolean value) { + this.satiety = value; + } + + public boolean getSatiety() { + return satiety; + } + + public String eatFromDishes(Dish dishOfFood, int isHungry) { + if (dishOfFood.countOfFood() < isHungry) { + return "Котику " + super.getName() + " мало еды."; + } else { + dishOfFood.eatOfFood(isHungry); + setSatiety(true); + return "Котик " + getName() + " покушал"; + } + } +} diff --git a/proJect/src/main/java/anlov/java/Circle.java b/proJect/src/main/java/anlov/java/Circle.java new file mode 100644 index 0000000..06e7373 --- /dev/null +++ b/proJect/src/main/java/anlov/java/Circle.java @@ -0,0 +1,27 @@ +package anlov.java; + +public class Circle extends FigureParams { + private final double RADIUS; + + public Circle(Colors colorOfBoard, Colors colorOfFill, double radius) { + super(colorOfBoard, colorOfFill); + RADIUS = radius; + } + + @Override + public String getName() { + return "Круг"; + } + + @Override + public double perimeter() { + return Math.PI * RADIUS * 2; + } + + @Override + public double area() { + return Math.PI * RADIUS * RADIUS; + } + + +} diff --git a/proJect/src/main/java/anlov/java/Colors.java b/proJect/src/main/java/anlov/java/Colors.java new file mode 100644 index 0000000..ebf5e9b --- /dev/null +++ b/proJect/src/main/java/anlov/java/Colors.java @@ -0,0 +1,8 @@ +package anlov.java; + +public enum Colors { + BLACK, + RED, + GREEN, + BLUE +} diff --git a/proJect/src/main/java/anlov/java/Dish.java b/proJect/src/main/java/anlov/java/Dish.java new file mode 100644 index 0000000..e2fb369 --- /dev/null +++ b/proJect/src/main/java/anlov/java/Dish.java @@ -0,0 +1,25 @@ +package anlov.java; + +public class Dish { + private int countOfEats; + + public Dish(int countOfEats) { + this.countOfEats = countOfEats; + } + + public int addEats(int add) { + countOfEats += add; + return countOfEats; + } + + public void eatOfFood(int eat) { + if (countOfEats - eat >= 0) { + countOfEats -= eat; + } else System.out.println("В тарелке не хватает еды!"); + } + + public int countOfFood() { + return countOfEats; + } +} + diff --git a/proJect/src/main/java/anlov/java/Dog.java b/proJect/src/main/java/anlov/java/Dog.java new file mode 100644 index 0000000..bde7841 --- /dev/null +++ b/proJect/src/main/java/anlov/java/Dog.java @@ -0,0 +1,32 @@ +package anlov.java; + +public class Dog extends Animal { + private static int countOfDog; + + public Dog(String name, String color) { + super(name, color); + ++countOfDog; + } + + @Override + public void run(int length) { + if (length > 500) { + System.out.println("Собачка пробежала 500 метров и очень устала)"); + } else if (length < 0) { + System.out.println("Ошибка!"); + } else System.out.println("Собачка пробежала " + length + " метров."); + } + + public static void getCountOfDog() { + System.out.println("Количество родившихся собачек: " + countOfDog); + } + + @Override + public void swim(int length) { + if (length < 11) { + System.out.println("Собачка проплыла: " + length + " метров."); + } else if (length < 0) { + System.out.println("Ошибка!"); + } else System.out.println("Собачка проплыла 10 метров и очень устала)"); + } +} diff --git a/proJect/src/main/java/anlov/java/Figure.java b/proJect/src/main/java/anlov/java/Figure.java new file mode 100644 index 0000000..469ae7f --- /dev/null +++ b/proJect/src/main/java/anlov/java/Figure.java @@ -0,0 +1,8 @@ +package anlov.java; + +public interface Figure { + double perimeter(); + + double area(); +} + diff --git a/proJect/src/main/java/anlov/java/FigureParams.java b/proJect/src/main/java/anlov/java/FigureParams.java new file mode 100644 index 0000000..816978f --- /dev/null +++ b/proJect/src/main/java/anlov/java/FigureParams.java @@ -0,0 +1,23 @@ +package anlov.java; + +public abstract class FigureParams implements Figure { + private final Colors colorOfBoard; + private final Colors colorOfFill; + + public FigureParams(Colors colorOfBoard, Colors colorOfFill) { + this.colorOfBoard = colorOfBoard; + this.colorOfFill = colorOfFill; + } + + public String getName() { + return "Фигуры"; + } + + @Override + public String toString() { + return "Параметры " + getName() + "{\n" + + "цвет границы = " + colorOfBoard + + ", цвет заливки = " + colorOfFill + + " периметр = " + this.perimeter() + " площадь = " + this.area() + '\n' + '}'; + } +} diff --git a/proJect/src/main/java/anlov/java/Main.java b/proJect/src/main/java/anlov/java/Main.java index 2109cb3..bb8c70b 100644 --- a/proJect/src/main/java/anlov/java/Main.java +++ b/proJect/src/main/java/anlov/java/Main.java @@ -1,9 +1,42 @@ package anlov.java; -import java.util.Arrays; +import java.util.ArrayList; +import java.util.List; public class Main { public static void main(String[] args) { + + Cat cat1 = new Cat("Barsik", "blue"); + cat1.run(1000); + cat1.swim(3); + Dog dog1 = new Dog("Sharik", "black"); + dog1.run(250); + dog1.swim(3); + Cat cat2 = new Cat("Murzik", "green"); + Animal.getCount(); + Cat.getCountOfAnimal(); + Dog.getCountOfDog(); + + List catList = new ArrayList<>(); + catList.add(cat1); + catList.add(cat2); + catList.add(new Cat("May", "blue")); + + Dish dish1 = new Dish(500); + dish1.addEats(150); + for (Cat cat : catList) { + System.out.println(cat.eatFromDishes(dish1, 650)); + System.out.println(cat.getSatiety()); + dish1.addEats(50); + + } + + Square square = new Square(Colors.BLACK, Colors.GREEN, 5); + System.out.println(square); + Circle circle = new Circle(Colors.BLACK, Colors.BLUE, 5); + System.out.println(circle); + Triangle triangle = new Triangle(Colors.RED, Colors.BLACK, 3); + System.out.println(triangle); } } \ No newline at end of file diff --git a/proJect/src/main/java/anlov/java/Square.java b/proJect/src/main/java/anlov/java/Square.java new file mode 100644 index 0000000..b65bf22 --- /dev/null +++ b/proJect/src/main/java/anlov/java/Square.java @@ -0,0 +1,26 @@ +package anlov.java; + +public class Square extends FigureParams { + + private final double SIDELENGTH; + + public Square(Colors fillColor, Colors boardColor, double SIDELENGTH) { + super(fillColor, boardColor); + this.SIDELENGTH = SIDELENGTH; + } + + @Override + public String getName() { + return "Квадрата"; + } + + @Override + public double perimeter() { + return SIDELENGTH * 4; + } + + @Override + public double area() { + return SIDELENGTH * SIDELENGTH; + } +} diff --git a/proJect/src/main/java/anlov/java/Triangle.java b/proJect/src/main/java/anlov/java/Triangle.java new file mode 100644 index 0000000..7763462 --- /dev/null +++ b/proJect/src/main/java/anlov/java/Triangle.java @@ -0,0 +1,25 @@ +package anlov.java; + +public class Triangle extends FigureParams { + private final double SIDELENGTH; + + public Triangle(Colors colorOfBoard, Colors colorOfFill, double sidelength) { + super(colorOfBoard, colorOfFill); + SIDELENGTH = sidelength; + } + + @Override + public String getName() { + return "Треугольника"; + } + + @Override + public double perimeter() { + return Math.PI * SIDELENGTH * 2; + } + + @Override + public double area() { + return Math.PI * SIDELENGTH * SIDELENGTH; + } +}