diff --git a/students/23K0120/23K0120-p02/src/main/java/ru/mirea/practice/s23k0120/Main.java b/students/23K0120/23K0120-p02/src/main/java/ru/mirea/practice/s23k0120/Main.java index fc55fc3a6..34be8fc10 100644 --- a/students/23K0120/23K0120-p02/src/main/java/ru/mirea/practice/s23k0120/Main.java +++ b/students/23K0120/23K0120-p02/src/main/java/ru/mirea/practice/s23k0120/Main.java @@ -7,6 +7,6 @@ private Main() { } public static void main(String[] args) { - System.out.println("Первая практическая работа!"); + System.out.println("Вторая практическая работа!"); } } diff --git a/students/23K0120/23K0120-p04/pom.xml b/students/23K0120/23K0120-p04/pom.xml new file mode 100644 index 000000000..7fcab1a98 --- /dev/null +++ b/students/23K0120/23K0120-p04/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0120 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0120-p04 + Enum + diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/Main.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/Main.java new file mode 100644 index 000000000..a438361b5 --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23k0120; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("Четвёртая практическая работа!"); + } +} diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Atelier.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Atelier.java new file mode 100644 index 000000000..7a9466f58 --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Atelier.java @@ -0,0 +1,34 @@ +package ru.mirea.practice.s23k0120.atelier; + +public abstract class Atelier { + + public static void dressMan(Clothes[] clothes) { + for (Clothes clothe : clothes) { + if (clothe instanceof MenClothing) { + ((MenClothing) clothe).dressMan(); + System.out.print('\n'); + } + } + } + + public static void dressWoman(Clothes[] clothes) { + for (Clothes clothe : clothes) { + if (clothe instanceof WomenClothing) { + ((WomenClothing) clothe).dressWoman(); + System.out.print('\n'); + } + } + } + + public static void main(String[] args) { + Clothes[] clothes = new Clothes[4]; + + clothes[0] = new TShirt(ClothingSizes.XXS, 1000, "Красный"); + clothes[1] = new Pants(ClothingSizes.M, 5000, "Синий"); + clothes[2] = new Skirt(ClothingSizes.L, 10000, "Чёрный"); + clothes[3] = new Tie(ClothingSizes.S, 2000, "Зелёный"); + + dressMan(clothes); + dressWoman(clothes); + } +} diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Clothes.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Clothes.java new file mode 100644 index 000000000..18d9db361 --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Clothes.java @@ -0,0 +1,22 @@ +package ru.mirea.practice.s23k0120.atelier; + + +import java.text.NumberFormat; +import java.util.Locale; + +public abstract class Clothes { + ClothingSizes size; + float cost; + String color; + + public Clothes(ClothingSizes size, float cost, String color) { + this.size = size; + this.cost = cost; + this.color = color; + } + + public String getDescription() { + NumberFormat format = NumberFormat.getCurrencyInstance(new Locale("ru", "Ru")); + return String.format("%s, Цена: %s, Цвет: %s", size, format.format(cost), color); + } +} \ No newline at end of file diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/ClothingSizes.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/ClothingSizes.java new file mode 100644 index 000000000..57f0a8d39 --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/ClothingSizes.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s23k0120.atelier; + +public enum ClothingSizes { + XXS(32), XS(34), S(36), M(38), L(40); + + final int euroSize; + + ClothingSizes(int euroSize) { + this.euroSize = euroSize; + } + + public String getDescription() { + if (euroSize >= 34) { + return "Взрослый размер"; + } else { + return "Детский размер"; + } + } + + @Override + public String toString() { + return String.format("%s, %d", getDescription(), this.euroSize); + } +} diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/MenClothing.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/MenClothing.java new file mode 100644 index 000000000..3108f5732 --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/MenClothing.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23k0120.atelier; + +public interface MenClothing { + void dressMan(); +} diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Pants.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Pants.java new file mode 100644 index 000000000..411ca902b --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Pants.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s23k0120.atelier; + +public class Pants extends Clothes implements MenClothing, WomenClothing { + public Pants(ClothingSizes size, float cost, String color) { + super(size, cost, color); + } + + @Override + public void dressMan() { + System.out.printf("Мужские Брюки %s", getDescription()); + } + + @Override + public void dressWoman() { + System.out.printf("Женские Брюки %s", getDescription()); + } +} diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Skirt.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Skirt.java new file mode 100644 index 000000000..b62a63f3b --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Skirt.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23k0120.atelier; + +public class Skirt extends Clothes implements WomenClothing { + public Skirt(ClothingSizes size, float cost, String color) { + super(size, cost, color); + } + + @Override + public void dressWoman() { + System.out.printf("Юбка %s", getDescription()); + } +} \ No newline at end of file diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/TShirt.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/TShirt.java new file mode 100644 index 000000000..52304c691 --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/TShirt.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s23k0120.atelier; + +public class TShirt extends Clothes implements MenClothing, WomenClothing { + public TShirt(ClothingSizes size, float cost, String color) { + super(size, cost, color); + } + + @Override + public void dressMan() { + System.out.printf("Мужская Футболка %s", getDescription()); + } + + @Override + public void dressWoman() { + System.out.printf("Женская Футболка %s", getDescription()); + } +} + diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Tie.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Tie.java new file mode 100644 index 000000000..a550867d0 --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/Tie.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23k0120.atelier; + +public class Tie extends Clothes implements MenClothing { + public Tie(ClothingSizes size, float cost, String color) { + super(size, cost, color); + } + + @Override + public void dressMan() { + System.out.printf("Галстук %s", getDescription()); + } +} diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/WomenClothing.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/WomenClothing.java new file mode 100644 index 000000000..dfebba9d6 --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/atelier/WomenClothing.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23k0120.atelier; + +public interface WomenClothing { + void dressWoman(); +} diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/seasons/Main.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/seasons/Main.java new file mode 100644 index 000000000..4ca2b96a1 --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/seasons/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23k0120.seasons; + +public abstract class Main { + public static void main(String[] args) { + Seasons season = Seasons.SPRING; + System.out.printf("%s, Длится с 1 марта по 31 мая, Второе время года в году\n", season); + + for (Seasons s : Seasons.values()) { + System.out.printf("%s, %s\n", s, s.getDescription()); + } + } +} diff --git a/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/seasons/Seasons.java b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/seasons/Seasons.java new file mode 100644 index 000000000..bc013bdfc --- /dev/null +++ b/students/23K0120/23K0120-p04/src/main/java/ru/mirea/practice/s23k0120/seasons/Seasons.java @@ -0,0 +1,85 @@ +package ru.mirea.practice.s23k0120.seasons; + +public enum Seasons { + SUMMER(25f), + AUTUMN(5f), + WINTER(-10f), + SPRING(15f); + + private final float temperature; + + Seasons(float temperature) { + this.temperature = temperature; + } + + public float getTemperature() { + return temperature; + } + + public static void like(Seasons season) { + String seasonStr; + switch (season) { + case SUMMER: + seasonStr = "лето"; + break; + case SPRING: + seasonStr = "весну"; + break; + case AUTUMN: + seasonStr = "осень"; + break; + case WINTER: + seasonStr = "зиму"; + break; + default: + seasonStr = "-"; + break; + } + System.out.printf("Я люблю %s\n", seasonStr); + } + + public String getDescription() { + String season; + switch (this) { + case SUMMER: + season = "Тёплое"; + break; + case SPRING: + season = "Умеренное"; + break; + case AUTUMN: + season = "Прохладное"; + break; + case WINTER: + season = "Холодное"; + break; + default: + season = "-"; + break; + } + return String.format("%s время года", season); + } + + @Override + public String toString() { + String season; + switch (this) { + case SUMMER: + season = "Лето"; + break; + case SPRING: + season = "Весна"; + break; + case AUTUMN: + season = "Осень"; + break; + case WINTER: + season = "Зима"; + break; + default: + season = "-"; + break; + } + return String.format("Время года - %s, Средняя температура - %.2f°C", season, this.temperature); + } +} \ No newline at end of file diff --git a/students/23K0120/23K0120-p04_1/pom.xml b/students/23K0120/23K0120-p04_1/pom.xml new file mode 100644 index 000000000..d172644c6 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23K0120 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23K0120-p04_1 + Наследование и Абстракция + diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/Main.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/Main.java new file mode 100644 index 000000000..23bfad03a --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/Main.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23k0120; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + System.out.println("Четвёртая практическая работа! - часть 2"); + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Circle.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Circle.java new file mode 100644 index 000000000..ec50bc96f --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Circle.java @@ -0,0 +1,41 @@ +package ru.mirea.practice.s23k0120.exercise1; + +public class Circle extends Shape { + double radius; + + public Circle() { + // Default constructor + } + + public Circle(double radius) { + this.radius = radius; + } + + public Circle(double radius, String color, boolean filled) { + super(color, filled); + this.radius = radius; + } + + public double getRadius() { + return radius; + } + + public void setRadius(float radius) { + this.radius = radius; + } + + @Override + public double getPerimeter() { + return radius * Math.PI * 2; + } + + @Override + public double getArea() { + return radius * radius * Math.PI; + } + + @Override + public String toString() { + return "Circle{" + "radius=" + radius + ", color='" + color + '\'' + ", filled=" + filled + '}'; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Main.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Main.java new file mode 100644 index 000000000..79bdfe1aa --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Main.java @@ -0,0 +1,57 @@ +package ru.mirea.practice.s23k0120.exercise1; + +public abstract class Main { + public static void main(String[] args) { + Circle s1 = new Circle(5.5, "RED", false); // Upcast Circle to Shape + System.out.println(s1); //Child class version + System.out.println(s1.getArea()); // Child class version + System.out.println(s1.getPerimeter()); // Child class version + System.out.println(s1.getColor()); // Child class version + System.out.println(s1.isFilled()); // Child class version + //System.out.println(s1.getRadius()); // Cannot resolve method "getRadius" in "Shape" + // (Trying to access Parent class version, but it doesn't exist) + // Can't access child version of a method when the object is upcasted, but the method isn't defined in the parent class + + Circle c1 = s1; // Downcast back to Circle + System.out.println(c1); // Child class version + System.out.println(c1.getArea()); // Child class version + System.out.println(c1.getPerimeter()); // Child class version + System.out.println(c1.getColor()); // Child class version + System.out.println(c1.isFilled()); // Child class version + System.out.println(c1.getRadius()); // Child class version + Shape s2 = new Shape(); + System.out.println(s2); + Rectangle s3 = new Rectangle(1.0, 2.0, "RED", false); // Upcast + System.out.println(s3); // Child class version + System.out.println(s3.getArea()); // Child class version + System.out.println(s3.getPerimeter()); // Child class version + System.out.println(s3.getColor()); // Child class version + System.out.println(s3.getLength()); // Cannot resolve method "getLength" in "Shape" (Trying to access Parent class version) + System.out.println("Rectangle r1 = (Rectangle)s3;"); + System.out.println(s3); + System.out.println(s3.getArea()); + System.out.println(s3.getColor()); + System.out.println(s3.getLength()); + Square s4 = new Square(6.6);//Upcast + System.out.println(s4); + System.out.println(s4.getArea()); + System.out.println(s4.getColor()); + //System.out.println(s4.getSide()); // Cannot resolve method "getSide" in "Shape" (Trying to access Parent class version) + /*обратите внимание, что выполняем downcast Shape s4 к + Rectangle, который является суперклассом + Square(родителем), вместо Square */ + Square r2 = s4; + System.out.println(r2); + System.out.println(r2.getArea()); + System.out.println(r2.getColor()); + //System.out.println(r2.getSide()); // Cannot resolve method "getSide" in "Shape" (Trying to access Parent class version) + System.out.println(r2.getLength()); + // Downcast Rectangle r2 к Square + Square sq1 = r2; + System.out.println(sq1); + System.out.println(sq1.getArea()); + System.out.println(sq1.getColor()); + System.out.println(sq1.getSide()); // Cannot resolve method "getSide" in "Shape" (Trying to access Parent class version) + System.out.println(sq1.getLength()); + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Rectangle.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Rectangle.java new file mode 100644 index 000000000..0c632e574 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Rectangle.java @@ -0,0 +1,52 @@ +package ru.mirea.practice.s23k0120.exercise1; + +public class Rectangle extends Shape { + protected double width = 0; + protected double length = 0; + + public Rectangle() { + // Default constructor + } + + public Rectangle(double width, double length) { + this.width = width; + this.length = length; + } + + public Rectangle(double width, double length, String color, boolean filled) { + super(color, filled); + this.width = width; + this.length = length; + } + + public double getWidth() { + return width; + } + + public void setWidth(double width) { + this.width = width; + } + + public double getLength() { + return length; + } + + public void setLength(double length) { + this.length = length; + } + + @Override + public double getPerimeter() { + return width * 2 + length * 2; + } + + @Override + public double getArea() { + return width * length; + } + + @Override + public String toString() { + return "Rectangle{" + "width=" + width + ", length=" + length + ", filled=" + filled + ", color='" + color + '\'' + '}'; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Shape.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Shape.java new file mode 100644 index 000000000..5fe413ba4 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Shape.java @@ -0,0 +1,45 @@ +package ru.mirea.practice.s23k0120.exercise1; + +public class Shape { + protected String color; + protected boolean filled; + + public Shape() { + // Default constructor + } + + public Shape(String color, boolean filled) { + this.color = color; + this.filled = filled; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + public boolean isFilled() { + return filled; + } + + public void setFilled(boolean filled) { + this.filled = filled; + } + + + public double getArea() { + return 0; + } + + public double getPerimeter() { + return 0; + } + + @Override + public String toString() { + return "Shape{" + "color='" + color + '\'' + ", filled=" + filled + '}'; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Square.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Square.java new file mode 100644 index 000000000..ee2b7700c --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/exercise1/Square.java @@ -0,0 +1,30 @@ +package ru.mirea.practice.s23k0120.exercise1; + +public class Square extends Rectangle { + + public Square() { + // Default constructor + } + + public Square(double side) { + super(side, side); + } + + public Square(double side, String color, boolean filled) { + super(side, side, color, filled); + } + + public void setSide(double side) { + this.width = side; + this.length = side; + } + + public double getSide() { + return this.width; + } + + @Override + public String toString() { + return "Square{" + "side=" + width + ", filled=" + filled + ", color='" + color + '\'' + '}'; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Circle.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Circle.java new file mode 100644 index 000000000..1caaaf24d --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Circle.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s23k0120.task1; + +public class Circle extends Shape { + float radius; + + public Circle(float radius) { + this.radius = radius; + } + + @Override + public String getType() { + return "Circle"; + } + + @Override + public float getPerimeter() { + return (float) (radius * Math.PI * 2); + } + + @Override + public float getArea() { + return (float) (radius * radius * Math.PI); + } + + @Override + public String toString() { + return "Circle{" + "radius=" + radius + '}'; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Rectangle.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Rectangle.java new file mode 100644 index 000000000..c94578879 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Rectangle.java @@ -0,0 +1,31 @@ +package ru.mirea.practice.s23k0120.task1; + +public class Rectangle extends Shape { + float width; + float height; + + public Rectangle(float width, float height) { + this.width = width; + this.height = height; + } + + @Override + public String getType() { + return "Rectangle"; + } + + @Override + public float getPerimeter() { + return width * 2 + height * 2; + } + + @Override + public float getArea() { + return width * height; + } + + @Override + public String toString() { + return "Rectangle{" + "width=" + width + ", length=" + height + '}'; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Shape.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Shape.java new file mode 100644 index 000000000..53b93028c --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Shape.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s23k0120.task1; + +public class Shape { + + public String getType() { + return "Shape"; + } + + public float getArea() { + return 0; + } + + public float getPerimeter() { + return 0; + } + + @Override + public String toString() { + return "Shape"; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Square.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Square.java new file mode 100644 index 000000000..6d3a7a02f --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Square.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s23k0120.task1; + +public class Square extends Rectangle { + + public Square(float side) { + super(side, side); + } + + @Override + public String getType() { + return "Square"; + } + + @Override + public String toString() { + return "Square{" + "side=" + width + "}"; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Tester.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Tester.java new file mode 100644 index 000000000..2b71e27b5 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task1/Tester.java @@ -0,0 +1,15 @@ +package ru.mirea.practice.s23k0120.task1; + +public abstract class Tester { + public static void main(String[] args) { + Circle circle = new Circle(5); + Rectangle rect = new Rectangle(10, 15); + Square square = new Square(20); + + Shape[] shapes = {circle, rect, square}; + + for (Shape shape : shapes) { + System.out.printf("%s, %s Perimeter: %f Area: %f\n", shape.getType(), shape, shape.getPerimeter(), shape.getArea()); + } + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Car.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Car.java new file mode 100644 index 000000000..073d135b1 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Car.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s23k0120.task10; + +public class Car extends Vehicle { + + public Car() { + // Default constructor + } + + public Car(double speed, double cost, int passengerSeats) { + super(speed, cost, passengerSeats); + } + + public Car(double speed, double cost, double cargoCapacity) { + super(speed, cost, cargoCapacity); + } + + public Car(double speed, double cost, int passengerSeats, double cargoCapacity) { + super(speed, cost, passengerSeats, cargoCapacity); + } + + @Override + public void transportPassengers(int numOfPassengers, double distance) { + super.transportPassengers(numOfPassengers, distance); + System.out.print(" via car"); + } + + @Override + public void transportCargo(double weight, double distance) { + super.transportCargo(weight, distance); + System.out.print(" via car"); + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Main.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Main.java new file mode 100644 index 000000000..6dfd73a22 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Main.java @@ -0,0 +1,19 @@ +package ru.mirea.practice.s23k0120.task10; + +public abstract class Main { + public static void main(String[] args) { + Car car = new Car(110f, 200f, 4, 300); + Plane plane = new Plane(950f, 5000f, 20, 5000); + Train train = new Train(250f, 150f, 500, 5000000); + Ship ship = new Ship(1.852 * 15, 150f, 20, 120000000); + + Vehicle[] vehicles = new Vehicle[]{car, plane, train, ship}; + + for (Vehicle vehicle : vehicles) { + vehicle.transportPassengers(500, 1000); + System.out.println(); + vehicle.transportCargo(1000 * 1000, 1000); + System.out.println(); + } + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Plane.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Plane.java new file mode 100644 index 000000000..d0d411f89 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Plane.java @@ -0,0 +1,33 @@ +package ru.mirea.practice.s23k0120.task10; + +public class Plane extends Vehicle { + + public Plane() { + // Default constructor + } + + public Plane(double speed, double cost, int passengerSeats) { + super(speed, cost, passengerSeats); + } + + public Plane(double speed, double cost, double cargoCapacity) { + super(speed, cost, cargoCapacity); + } + + public Plane(double speed, double cost, int passengerSeats, double cargoCapacity) { + super(speed, cost, passengerSeats, cargoCapacity); + } + + @Override + public void transportPassengers(int numOfPassengers, double distance) { + super.transportPassengers(numOfPassengers, distance); + System.out.print(" via plane"); + } + + @Override + public void transportCargo(double weight, double distance) { + super.transportCargo(weight, distance); + System.out.print(" via plane"); + } + +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Ship.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Ship.java new file mode 100644 index 000000000..bae2be60d --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Ship.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s23k0120.task10; + +public class Ship extends Vehicle { + + public Ship() { + // Default constructor + } + + public Ship(double speed, double cost, int passengerSeats) { + super(speed, cost, passengerSeats); + } + + public Ship(double speed, double cost, double cargoCapacity) { + super(speed, cost, cargoCapacity); + } + + public Ship(double speed, double cost, int passengerSeats, double cargoCapacity) { + super(speed, cost, passengerSeats, cargoCapacity); + } + + @Override + public void transportPassengers(int numOfPassengers, double distance) { + super.transportPassengers(numOfPassengers, distance); + System.out.print(" via plane"); + } + + @Override + public void transportCargo(double weight, double distance) { + super.transportCargo(weight, distance); + System.out.print(" via plane"); + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Train.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Train.java new file mode 100644 index 000000000..9c2aed678 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Train.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s23k0120.task10; + +public class Train extends Vehicle { + + public Train() { + // Default constructor + } + + public Train(double speed, double cost, int passengerSeats) { + super(speed, cost, passengerSeats); + } + + public Train(double speed, double cost, double cargoCapacity) { + super(speed, cost, cargoCapacity); + } + + public Train(double speed, double cost, int passengerSeats, double cargoCapacity) { + super(speed, cost, passengerSeats, cargoCapacity); + } + + @Override + public void transportPassengers(int numOfPassengers, double distance) { + super.transportPassengers(numOfPassengers, distance); + System.out.print(" via train"); + } + + @Override + public void transportCargo(double weight, double distance) { + super.transportCargo(weight, distance); + System.out.print(" via train"); + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Vehicle.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Vehicle.java new file mode 100644 index 000000000..8d989a713 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task10/Vehicle.java @@ -0,0 +1,59 @@ +package ru.mirea.practice.s23k0120.task10; + +public class Vehicle { + protected double speed; // Km/h + protected int passengerSeats; //Num of seats + protected double cost; // $/(1000 km * 100 kg) + protected double cargoCapacity; // kg + + public Vehicle() { + // Default constructor + } + + public Vehicle(double speed, double cost, int passengerSeats) { + this.speed = speed; + this.cost = cost; + this.passengerSeats = passengerSeats; + } + + public Vehicle(double speed, double cost, double cargoCapacity) { + this.speed = speed; + this.cost = cost; + this.cargoCapacity = cargoCapacity; + } + + public Vehicle(double speed, double cost, int passengerSeats, double cargoCapacity) { + this.speed = speed; + this.cost = cost; + this.passengerSeats = passengerSeats; + this.cargoCapacity = cargoCapacity; + } + + public double getSpeed() { + return speed; + } + + public double getCost() { + return cost; + } + + public double getCargoCapacity() { + return cargoCapacity; + } + + public int getPassengerSeats() { + return passengerSeats; + } + + public void transportPassengers(int numOfPassengers, double distance) { + double cost = distance * (numOfPassengers * 80) * this.cost / (1000 * 100); + double time = distance / this.speed; + System.out.printf("It would cost $ %.2f to transfer %d passengers for %.3f km for %.3f hours", cost, numOfPassengers, distance, time); + } + + public void transportCargo(double weight, double distance) { + double cost = distance * weight * this.cost / (1000 * 100); + double time = distance / this.speed; + System.out.printf("It would cost $ %f to transfer %f cargo for %f km for %f hours", cost, weight, distance, time); + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task2/Main.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task2/Main.java new file mode 100644 index 000000000..a6b5898d5 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task2/Main.java @@ -0,0 +1,19 @@ +package ru.mirea.practice.s23k0120.task2; + +public abstract class Main { + public static void main(String[] args) { + final Phone phone1 = new Phone("1234", "Xiaomi", 250f); + final Phone phone2 = new Phone("+7911", "iPhone", 125.3f); + final Phone phone3 = new Phone("+9528", "Samsung", 212f); + + phone1.recieveCall("Саня"); + + System.out.println(phone1.getNumber()); + System.out.println(phone2.getNumber()); + System.out.println(phone3.getNumber()); + + phone3.recieveCall("Даня", "777"); + + phone2.sendMessage("333", "1917", "2024", "88005553535"); + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task2/Phone.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task2/Phone.java new file mode 100644 index 000000000..9ef5f4dd3 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task2/Phone.java @@ -0,0 +1,41 @@ +package ru.mirea.practice.s23k0120.task2; + +public class Phone { + String number; + String model; + float weight = 0; + + public Phone() { + // Default constructor + } + + public Phone(String number, String model) { + this.number = number; + this.model = model; + } + + public Phone(String number, String model, float weight) { + Phone phone = new Phone(number, model); + this.number = phone.number; + this.model = phone.number; + this.weight = weight; + } + + public void recieveCall(String caller) { + System.out.println("Звонит " + caller); + } + + public void recieveCall(String caller, String number) { + System.out.println("Звонит " + caller + " по номеру " + number); + } + + public void sendMessage(String... args) { + for (String arg : args) { + System.out.println(arg); + } + } + + public String getNumber() { + return number; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task4/Main.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task4/Main.java new file mode 100644 index 000000000..e84c8a6d3 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task4/Main.java @@ -0,0 +1,28 @@ +package ru.mirea.practice.s23k0120.task4; + +public abstract class Main { + public static void main(String[] args) { + Matrix matr1 = new Matrix(new float[][]{{1, 2, 3}, {3, 4, 5}}); + + Matrix matr2 = new Matrix(new float[][]{{1, 1, 1}, {2, 2, 2}}); + + System.out.printf("rows = %d columns = %d\n", matr1.getRows(), matr1.getColumns()); + + System.out.println(matr1); + System.out.println(matr2); + + System.out.println(Matrix.add(matr2, matr1)); + matr1.add(new Matrix(new float[][]{{1, 1, 1}, {-10, -10, -10}})); + System.out.println(matr1); + + Matrix matr3 = new Matrix(new float[][]{{1, 2}, {3, 4}}); + Matrix matr4 = new Matrix(new float[][]{{1, 1}}); + Matrix matr5 = new Matrix(new float[][]{{1}, {0}}); + + System.out.println(matr4.size()); + System.out.println(matr3.multiplyLeft(matr4)); + System.out.println(matr5.multiplyLeft(matr3)); + + System.out.println(Matrix.multiply(matr4, matr5)); + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task4/Matrix.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task4/Matrix.java new file mode 100644 index 000000000..efc6b424e --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task4/Matrix.java @@ -0,0 +1,121 @@ +package ru.mirea.practice.s23k0120.task4; + +import java.util.Arrays; + +public class Matrix { + private float[][] values; + private int rows; + private int columns; + + public Matrix(float[][] arr) { + this.values = arr; + this.rows = arr.length; + this.columns = arr[0].length; + } + + public int getRows() { + return rows; + } + + public int getColumns() { + return columns; + } + + public void add(Matrix matrix) { + if (matrix.columns != this.getColumns() || matrix.rows != this.getRows()) { + throw new RuntimeException(String.format("Size mismatch error: attempting to add %s to %s", matrix.size(), this.size())); + } + for (int i = 0; i < rows; i++) { + for (int j = 0; j < columns; j++) { + this.values[i][j] += matrix.values[i][j]; + } + } + } + + public static Matrix add(Matrix matrixA, Matrix matrixB) { + if (matrixA.columns != matrixB.getColumns() || matrixA.rows != matrixB.getRows()) { + throw new RuntimeException(String.format("Size mismatch error: attempting to add %s to %s", matrixB.size(), matrixB.size())); + } + Matrix matrix = new Matrix(new float[matrixB.rows][matrixA.columns]); + + for (int i = 0; i < matrixA.rows; i++) { + for (int j = 0; j < matrixA.columns; j++) { + matrix.values[i][j] = matrixA.values[i][j] + matrixB.values[i][j]; + } + } + return matrix; + } + + public void multiply(float scalar) { + for (int i = 0; i < rows; i++) { + for (int j = 0; j < columns; j++) { + this.values[i][j] *= scalar; + } + } + } + + public static Matrix multiply(Matrix matrix, float scalar) { + Matrix matrixA = new Matrix(new float[matrix.rows][matrix.columns]); + + for (int i = 0; i < matrixA.rows; i++) { + for (int j = 0; j < matrixA.columns; j++) { + matrix.values[i][j] *= scalar; + } + } + return matrixA; + } + + public static Matrix multiply(Matrix matrixA, Matrix matrixB) { + return matrixA.multiplyRight(matrixB); + } + + public Matrix multiplyRight(Matrix matrix) { + if (matrix.getRows() != this.columns) { + throw new RuntimeException(String.format("Size mismatch error: attempting to multiply %s to %s", matrix.size(), this.size())); + } + float cellSum = 0; + Matrix matrix1 = new Matrix(new float[this.rows][matrix.columns]); + for (int i = 0; i < this.rows; i++) { + for (int j = 0; j < matrix.columns; j++) { + for (int k = 0; k < this.columns; k++) { + cellSum += this.values[i][k] * matrix.values[k][j]; + } + matrix1.values[i][j] = cellSum; + cellSum = 0; + } + } + return matrix1; + } + + public Matrix multiplyLeft(Matrix matrix) { + if (this.getRows() != matrix.columns) { + throw new RuntimeException(String.format("Size mismatch error: attempting to multiply %s to %s", matrix.size(), this.size())); + } + float cellSum = 0; + Matrix matrix1 = new Matrix(new float[matrix.rows][this.columns]); + for (int i = 0; i < matrix.rows; i++) { + for (int j = 0; j < this.columns; j++) { + for (int k = 0; k < matrix.columns; k++) { + cellSum += matrix.values[i][k] * this.values[k][j]; + } + matrix1.values[i][j] = cellSum; + cellSum = 0; + } + } + return matrix1; + } + + @Override + public String toString() { + StringBuilder stringBuilder = new StringBuilder(); + for (float[] row : values) { + stringBuilder.append(Arrays.toString(row)); + stringBuilder.append('\n'); + } + return stringBuilder.toString(); + } + + public String size() { + return "Matrix{" + this.rows + "x" + this.columns + "}"; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Learner.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Learner.java new file mode 100644 index 000000000..701a59ee3 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Learner.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s23k0120.task7; + +public class Learner { + String name; + int age; + float averageGrade; + + public Learner() { + // Default constructor + } + + public Learner(String name, int age) { + this.name = name; + this.age = age; + } + + public Learner(String name, int age, float grade) { + Learner learner = new Learner(name, age); + this.name = learner.name; + this.age = learner.age; + this.averageGrade = grade; + } + + public void study() { + System.out.println(name + " учится"); + } + + @Override + public String toString() { + return "Учащийся{" + "ФИО= " + name + ", Возраст=" + age + " лет}"; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Main.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Main.java new file mode 100644 index 000000000..36a88b6a6 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Main.java @@ -0,0 +1,28 @@ +package ru.mirea.practice.s23k0120.task7; + +public abstract class Main { + public static void main(String[] args) { + Student student1 = new Student("Иванов Иван Иванович", 19, 4.3f); + Student student2 = new Student("Соколов Петр Петрович", 18, 4.8f); + Student student3 = new Student("Стрижов Андрей Владимирович", 19, 3.2f); + Pupil pupil1 = new Pupil("Смирнова Анастасия Сергеевна", 14, 4.5f); + Pupil pupil2 = new Pupil("Чижиков Василий Ильич", 14, 2.3f); + Learner[] learners; + learners = new Learner[]{student1, pupil1, student2, student3, pupil2}; + + for (Learner learner : learners) { + if (learner instanceof Pupil) { + System.out.println(learner); + } + } + for (Learner learner : learners) { + if (learner instanceof Student) { + System.out.println(learner); + } + } + + for (Learner learner : learners) { + learner.study(); + } + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Pupil.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Pupil.java new file mode 100644 index 000000000..876b0cdc4 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Pupil.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s23k0120.task7; + +public class Pupil extends Learner { + public Pupil() { + super(); + } + + public Pupil(String name, int age) { + super(name, age); + } + + public Pupil(String name, int age, float grade) { + super(name, age, grade); + } + + @Override + public void study() { + System.out.println(name + " делает домашку"); + } + + @Override + public String toString() { + return "Школьник{" + "ФИО= " + name + ", Возраст=" + age + " лет}"; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Student.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Student.java new file mode 100644 index 000000000..9ee7083a8 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task7/Student.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s23k0120.task7; + +public class Student extends Learner { + public Student() { + super(); + } + + public Student(String name, int age) { + super(name, age); + } + + public Student(String name, int age, float grade) { + super(name, age, grade); + } + + @Override + public void study() { + System.out.println(name + " сидит на парах"); + } + + @Override + public String toString() { + return "Студент{" + "ФИО= " + this.name + ", Возраст=" + this.age + " лет}"; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Circle.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Circle.java new file mode 100644 index 000000000..d38ad57a2 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Circle.java @@ -0,0 +1,41 @@ +package ru.mirea.practice.s23k0120.task8; + +public class Circle extends Shape { + double radius; + + public Circle() { + // Default constructor + } + + public Circle(double radius) { + this.radius = radius; + } + + public Circle(float radius, String color, boolean filled) { + super(color, filled); + this.radius = radius; + } + + public double getRadius() { + return radius; + } + + public void setRadius(float radius) { + this.radius = radius; + } + + @Override + public double getPerimeter() { + return radius * Math.PI * 2; + } + + @Override + public double getArea() { + return radius * radius * Math.PI; + } + + @Override + public String toString() { + return "Circle{" + "radius=" + radius + ", color='" + color + '\'' + ", filled=" + filled + '}'; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Rectangle.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Rectangle.java new file mode 100644 index 000000000..23365c29f --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Rectangle.java @@ -0,0 +1,52 @@ +package ru.mirea.practice.s23k0120.task8; + +public class Rectangle extends Shape { + protected double width = 0; + protected double length = 0; + + public Rectangle() { + // Default constructor + } + + public Rectangle(double width, double length) { + this.width = width; + this.length = length; + } + + public Rectangle(double width, double length, String color, boolean filled) { + super(color, filled); + this.width = width; + this.length = length; + } + + public double getWidth() { + return width; + } + + public void setWidth(double width) { + this.width = width; + } + + public double getLength() { + return length; + } + + public void setLength(double length) { + this.length = length; + } + + @Override + public double getPerimeter() { + return width * 2 + length * 2; + } + + @Override + public double getArea() { + return width * length; + } + + @Override + public String toString() { + return "Rectangle{" + "width=" + width + ", length=" + length + ", filled=" + filled + ", color='" + color + '\'' + '}'; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Shape.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Shape.java new file mode 100644 index 000000000..69b052593 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Shape.java @@ -0,0 +1,45 @@ +package ru.mirea.practice.s23k0120.task8; + +public abstract class Shape { + protected String color; + protected boolean filled; + + public Shape() { + // Default constructor + } + + public Shape(String color, boolean filled) { + this.color = color; + this.filled = filled; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + public boolean isFilled() { + return filled; + } + + public void setFilled(boolean filled) { + this.filled = filled; + } + + + public double getArea() { + return 0; + } + + public double getPerimeter() { + return 0; + } + + @Override + public String toString() { + return "Shape{" + "color='" + color + '\'' + ", filled=" + filled + '}'; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Square.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Square.java new file mode 100644 index 000000000..ba8c23f9b --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Square.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s23k0120.task8; + +public class Square extends Rectangle { + + public Square() { + // Default constructor + } + + public Square(float side) { + super(side, side); + } + + public Square(float side, String color, boolean filled) { + super(side, side, color, filled); + } + + + public void setSide(double side) { + this.width = side; + this.length = side; + } + + @Override + public String toString() { + return "Rectangle{" + "side=" + width + ", filled=" + filled + ", color='" + color + '\'' + '}'; + } +} diff --git a/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Tester.java b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Tester.java new file mode 100644 index 000000000..f3779ab77 --- /dev/null +++ b/students/23K0120/23K0120-p04_1/src/main/java/ru/mirea/practice/s23k0120/task8/Tester.java @@ -0,0 +1,15 @@ +package ru.mirea.practice.s23k0120.task8; + +public abstract class Tester { + public static void main(String[] args) { + Circle circle = new Circle(5); + Rectangle rect = new Rectangle(10, 15); + Square square = new Square(20); + + Shape[] shapes = {circle, rect, square}; + + for (Shape shape : shapes) { + System.out.printf("%s Perimeter: %f Area: %f\n", shape, shape.getPerimeter(), shape.getArea()); + } + } +} diff --git a/students/23K0120/pom.xml b/students/23K0120/pom.xml index bcca76646..11e2be12a 100644 --- a/students/23K0120/pom.xml +++ b/students/23K0120/pom.xml @@ -16,5 +16,7 @@ 23K0120-p02 23K0120-p01 23K0120-p03 + 23K0120-p04 + 23K0120-p04_1