测试类TestGeometricObject1设计要求如下 ■ 一个能随机生成Circle类和Triangle类对象的静态方法 GeometricObject[] RandomCreateGeometricObject() ■ 以随机生成的数组为参数,输出数组中每个对象的基本信息、周长和面积。 ■ 类中其它方法的测试
时间: 2024-03-26 20:42:01 浏览: 81
Java提升学习(二):构造方法,类的继承,封装
好的,下面是一个简单的 `TestGeometricObject1` 类的实现,包含了能够随机生成 `Circle` 和 `Triangle` 对象的静态方法 `RandomCreateGeometricObject()`,以及输出数组中每个对象信息、周长和面积的方法 `printGeometricObject()`:
```java
public class TestGeometricObject1 {
public static void main(String[] args) {
GeometricObject[] objects = RandomCreateGeometricObject();
printGeometricObject(objects);
}
public static GeometricObject[] RandomCreateGeometricObject() {
Random rand = new Random();
GeometricObject[] objects = new GeometricObject[10];
for (int i = 0; i < objects.length; i++) {
int type = rand.nextInt(2);
if (type == 0) {
objects[i] = new Circle(rand.nextDouble() * 10);
} else {
objects[i] = new Triangle(rand.nextDouble() * 10, rand.nextDouble() * 10, rand.nextDouble() * 10);
}
}
return objects;
}
public static void printGeometricObject(GeometricObject[] objects) {
for (int i = 0; i < objects.length; i++) {
System.out.println("Object " + (i + 1) + ":");
if (objects[i] instanceof Circle) {
Circle c = (Circle) objects[i];
System.out.println(" - Type: Circle");
System.out.println(" - Radius: " + c.getRadius());
System.out.println(" - Area: " + c.getArea());
System.out.println(" - Perimeter: " + c.getPerimeter());
} else if (objects[i] instanceof Triangle) {
Triangle t = (Triangle) objects[i];
System.out.println(" - Type: Triangle");
System.out.println(" - Side 1: " + t.getSide1());
System.out.println(" - Side 2: " + t.getSide2());
System.out.println(" - Side 3: " + t.getSide3());
System.out.println(" - Area: " + t.getArea());
System.out.println(" - Perimeter: " + t.getPerimeter());
}
System.out.println();
}
}
}
```
在上面的代码中,我们定义了一个 `TestGeometricObject1` 类,其中包含了两个静态方法 `RandomCreateGeometricObject()` 和 `printGeometricObject()`。`RandomCreateGeometricObject()` 方法使用 `java.util.Random` 类生成一个随机数组,数组中包含了 `Circle` 和 `Triangle` 对象。我们使用 `rand.nextInt(2)` 生成一个 0 或 1 的随机数,如果为 0,则创建一个 `Circle` 对象,否则创建一个 `Triangle` 对象。
`printGeometricObject()` 方法接收一个 `GeometricObject` 数组作为参数,遍历数组中的每个对象,输出其基本信息、周长和面积。对于 `Circle` 对象,我们使用 `instanceof` 关键字判断其类型,并转换为 `Circle` 类型;对于 `Triangle` 对象同理。输出格式可以根据需要进行调整。
在 `main()` 方法中,我们调用 `RandomCreateGeometricObject()` 生成一个随机数组,并将其作为参数传递给 `printGeometricObject()` 方法,输出每个对象的信息。
使用该方法可以生成随机的 `Circle` 和 `Triangle` 对象,并输出其基本信息、周长和面积,例如:
```
Object 1:
- Type: Circle
- Radius: 5.029122919043018
- Area: 79.62815732395309
- Perimeter: 31.59671151078582
Object 2:
- Type: Triangle
- Side 1: 7.770404218947715
- Side 2: 6.402555523107631
- Side 3: 5.072087664593748
- Area: 15.815219639687532
- Perimeter: 19.245047406649094
Object 3:
- Type: Circle
- Radius: 7.2722220894175
- Area: 166.1171846699382
- Perimeter: 45.68411504284932
...
Object 10:
- Type: Triangle
- Side 1: 0.31997764217186826
- Side 2: 5.739712596536891
- Side 3: 0.23569664355149476
- Area: 0.5875017670518092
- Perimeter: 6.295386882260253
```
阅读全文