14 06 2023
以下是TestGeometricObject1的设计实现: ```java import java.util.Random; public class TestGeometricObject1 { public static void main(String[] args) { GeometricObject[] objects = RandomCreateGeometricObject(); for (GeometricObject object : objects) { System.out.println(object.toString()); System.out.println("周长:" + object.getPerimeter()); System.out.println("面积:" + object.getArea()); System.out.println(); } } public static GeometricObject[] RandomCreateGeometricObject() { Random random = new Random(); GeometricObject[] objects = new GeometricObject[10]; for (int i = 0; i < objects.length; i++) { if (random.nextBoolean()) { objects[i] = new Circle(random.nextDouble() * 10); } else { objects[i] = new Triangle(random.nextDouble() * 10, random.nextDouble() * 10, random.nextDouble() * 10); } } return objects; } } ``` 在main方法中,我们首先调用RandomCreateGeometricObject方法生成一个随机的GeometricObject数组,然后遍历数组,输出每个对象的基本信息、周长和面积。 RandomCreateGeometricObject方法中,我们使用Java自带的Random类生成一个随机数,然后根据随机数的值来决定生成Circle对象还是Triangle对象。最后将生成的对象存入数组中并返回。 除了RandomCreateGeometricObject方法外,GeometricObject类中还有getPerimeter和getArea方法,它们分别用于计算对象的周长和面积。这些方法的实现可以参考以下代码: ```java public abstract class GeometricObject { private String color; private boolean filled; public GeometricObject() { color = "white"; filled = false; } public GeometricObject(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 abstract double getPerimeter(); public abstract double getArea(); @Override public String toString() { return "颜色:" + color + ",是否填充:" + filled; } } public class Circle extends GeometricObject { private double radius; public Circle() { radius = 1.0; } 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(double radius) { this.radius = radius; } @Override public double getPerimeter() { return 2 * Math.PI * radius; } @Override public double getArea() { return Math.PI * radius * radius; } @Override public String toString() { return "圆形,半径:" + radius + "," + super.toString(); } } public class Triangle extends GeometricObject { private double side1; private double side2; private double side3; public Triangle() { side1 = 1.0; side2 = 1.0; side3 = 1.0; } public Triangle(double side1, double side2, double side3) { this.side1 = side1; this.side2 = side2; this.side3 = side3; } public double getSide1() { return side1; } public void setSide1(double side1) { this.side1 = side1; } public double getSide2() { return side2; } public void setSide2(double side2) { this.side2 = side2; } public double getSide3() { return side3; } public void setSide3(double side3) { this.side3 = side3; } @Override public double getPerimeter() { return side1 + side2 + side3; } @Override public double getArea() { double p = (side1 + side2 + side3) / 2; return Math.sqrt(p * (p - side1) * (p - side2) * (p - side3)); } @Override public String toString() { return "三角形,边长:" + side1 + "、" + side2 + "、" + side3 + "," + super.toString(); } } ``` 在GeometricObject类中,我们定义了一个抽象方法getPerimeter和一个抽象方法getArea,这两个方法分别用于计算对象的周长和面积。由于GeometricObject类是一个抽象类,因此这两个方法没有具体的实现,而是留给子类去实现。 在Circle类和Triangle类中,我们分别实现了getPerimeter和getArea方法。对于Circle类,周长是2πr,面积是πr²;对于Triangle类,周长是三条边的和,面积使用海伦公式计算。 最后,在Circle类和Triangle类中,我们重写了toString方法,用于输出对象的基本信息。在GeometricObject类中,我们也重写了toString方法,但只输出了颜色和是否填充这两个属性。
延伸阅读
    如何更好地应对公司的人才流动和管理挑战?
    如何处理工作中的冲突和合作问题?
    考试问题分析总结以及学习方法。以及学习的目标和短期的目标
    社会服务与社区建设
    曲线x=√2cost,y=sint,z=sint,在点(√2,0,0)处的法平面方程为 Ax + By + Cz + D =0.若 B