Привет! Я решил написать статью об использовании интерфейсов для создания программы, которая рассчитывает периметр и площадь геометрических фигур ― круга, прямоугольника и треугольника. Я также добавил возможность установки цвета заливки и цвета границы для каждой фигуры. Результаты расчета и установленные цвета выводятся на консоль.Для начала, я создал интерфейс ″Фигура″, который содержит методы для расчета периметра и площади фигуры, а также установки цвета заливки и цвета границы. В этом интерфейсе я определил дефолтные методы для расчета периметра и площади, которые можно переопределить в классах-наследниках.java
public interface Shape {
double calculatePerimeter;
double calculateArea;
default void setFillColor(String color) {
System.out.println(″Установлен цвет заливки⁚ ″ color);
}
default void setBorderColor(String color) {
System.out.println(″Установлен цвет границы⁚ ″ color);
}
}
Затем я создал классы для каждой геометрической фигуры ― Circle (круг), Rectangle (прямоугольник) и Triangle (треугольник), которые реализуют интерфейс Shape.java
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius radius;
}
@Override
public double calculatePerimeter {
return 2 * Math.PI * radius;
}
@Override
public double calculateArea {
return Math.PI * radius * radius;
}
}
public class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width width;
this.height height;
}
@Override
public double calculatePerimeter {
return 2 * (width height);
}
@Override
public double calculateArea {
return width * height;
}
}
public class Triangle implements Shape {
private double side1;
private double side2;
private double side3;
public Triangle(double side1, double side2, double side3) {
this.side1 side1;
this.side2 side2;
this.side3 side3;
}
@Override
public double calculatePerimeter {
return side1 side2 side3;
}
@Override
public double calculateArea {
// Расчет площади треугольника можно добавить позже
return 0;
}
}
Теперь я могу использовать эти классы для создания объектов-фигур и расчета их характеристик. Вот пример кода, который демонстрирует это⁚
java
public class Main {
public static void main(String[] args) {
Shape circle new Circle(5);
circle.setFillColor(″Красный″);
circle.setBorderColor(″Черный″);
System.out.println(″Периметр круга⁚ ″ circle.calculatePerimeter);
System.out.println(″Площадь круга⁚ ″ circle.calculateArea);
Shape rectangle new Rectangle(4٫ 6);
rectangle.setFillColor(″Синий″);
rectangle.setBorderColor(″Зеленый″);
System.out.println(″Периметр прямоугольника⁚ ″ rectangle.calculatePerimeter);
System.out.println(″Площадь прямоугольника⁚ ″ rectangle.calculateArea);
Shape triangle new Triangle(3, 4, 5);
triangle.setFillColor(″Желтый″);
triangle.setBorderColor(″Фиолетовый″);
System.out.println(″Периметр треугольника⁚ ″ triangle.calculatePerimeter);
System.out.println(″Площадь треугольника⁚ ″ triangle.calculateArea);
}
}
В результате выполнения этого кода на консоль будут выведены периметр, площадь, цвет заливки и цвет границы каждой фигуры, заданные в соответствующих методах setFillColor и setBorderColor.
Таким образом, я использовал интерфейсы для написания программы, которая рассчитывает периметр и площадь геометрических фигур, а также устанавливает цвет заливки и цвет границы для каждой фигуры.