编写一个测试测试类TestGeometric,创建有三个GeometricObject对象的数组,根据用户输入的width, height, color, filled信息,创建三个Square类的对象,然后将这三个对象保存在刚刚创建的GeometricObject对象数组中。对于数组中的每个对象而言,如果对象未着色,则输出“Color=xxx”“Filled=xxx”;如果对象是已着色的,先调用其howToColor方法,再输出“Color=xxx”“Filled=xxx”。
时间: 2024-02-17 17:01:34 浏览: 34
好的,以下是TestGeometric类的代码实现:
```java
import java.util.Scanner;
public class TestGeometric {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 创建GeometricObject对象数组
GeometricObject[] objects = new GeometricObject[3];
// 根据用户输入创建Square对象,并将其保存在数组中
for (int i = 0; i < objects.length; i++) {
System.out.print("Enter the width of square " + (i + 1) + ": ");
double width = input.nextDouble();
System.out.print("Enter the height of square " + (i + 1) + ": ");
double height = input.nextDouble();
System.out.print("Enter the color of square " + (i + 1) + ": ");
String color = input.next();
System.out.print("Is square " + (i + 1) + " filled (true/false)? ");
boolean filled = input.nextBoolean();
objects[i] = new Square(width, height, color, filled);
}
// 输出每个对象的颜色和填充状态
for (GeometricObject object : objects) {
if (!object.isFilled()) {
System.out.println("Color=" + object.getColor());
System.out.println("Filled=" + object.isFilled());
} else {
((Square) object).howToColor();
System.out.println("Color=" + object.getColor());
System.out.println("Filled=" + object.isFilled());
}
}
}
}
```
在上述代码中,我们先创建了一个GeometricObject对象数组,并且根据用户输入创建了三个Square对象,并将其保存在数组中。接着,我们遍历了数组中的每个对象,如果其未着色,则直接输出颜色和填充状态;如果其已着色,则先调用其howToColor方法,再输出颜色和填充状态。
需要注意的是,在调用howToColor方法之前,我们需要将对象强制类型转换为Square类型。这是因为howToColor方法只在Square类中定义。
阅读全文