首页 > ChatAI > AI文库 >

测试类TestGeometricObject1设计要求如下: ■ 一个能随机生成Circle类和Triangle类对象的静态方法 GeometricObject[] RandomCreateGeo

分享 54773

分享

以下是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;
}

相关推荐

新征程上,青年如何握紧接力棒,走好奋斗路为主题写一篇思想报告

AI文库

神秘岛高三读后感700字

高三

韩国请回答1988电视剧观后感

电视剧观后感

九年级数学二次根式知识点

别名数学

语文教学工作计划模板

工作计划范文

热门图文

上一篇:20××年3月29日,学校召开了紧急会议,专题整顿学生违纪违规问题,强调加强学生日常教育和管理,并明确了违规违纪处理的意见。根据《XX学校学生管理办法》第五章第二条决定在全校范围内对胡××、蔡××、方

下一篇:中国近代监狱摘要