设计一个测试类,随机生成圆或三角形及其颜色和是否填充
时间: 2024-03-02 12:53:37 浏览: 23
好的,下面是一个简单的测试类的设计,可以随机生成圆或三角形的形状、颜色和是否填充:
```java
import java.util.Random;
public class ShapeGeneratorTest {
public static void main(String[] args) {
Random random = new Random();
ShapeGenerator shapeGenerator = new ShapeGenerator();
for (int i = 0; i < 10; i++) {
Shape shape;
if (random.nextBoolean()) {
shape = shapeGenerator.generateCircle();
} else {
shape = shapeGenerator.generateTriangle();
}
System.out.println("Shape: " + shape.getType() + ", Color: " + shape.getColor() + ", Filled: " + shape.isFilled());
}
}
}
```
其中,`ShapeGenerator` 类是一个随机生成形状的工具类,它包含了 `generateCircle()` 和 `generateTriangle()` 两个方法,分别用来生成圆和三角形。`Shape` 类是一个抽象类,它定义了形状的基本属性和方法,包括类型、颜色、是否填充等。具体的实现可以参考下面的代码:
```java
import java.awt.*;
public abstract class Shape {
protected String type;
protected Color color;
protected boolean filled;
public String getType() {
return type;
}
public Color getColor() {
return color;
}
public boolean isFilled() {
return filled;
}
}
class Circle extends Shape {
public Circle(Color color, boolean filled) {
this.type = "Circle";
this.color = color;
this.filled = filled;
}
}
class Triangle extends Shape {
public Triangle(Color color, boolean filled) {
this.type = "Triangle";
this.color = color;
this.filled = filled;
}
}
class ShapeGenerator {
private Random random = new Random();
public Circle generateCircle() {
Color color = generateRandomColor();
boolean filled = random.nextBoolean();
return new Circle(color, filled);
}
public Triangle generateTriangle() {
Color color = generateRandomColor();
boolean filled = random.nextBoolean();
return new Triangle(color, filled);
}
private Color generateRandomColor() {
int r = random.nextInt(256);
int g = random.nextInt(256);
int b = random.nextInt(256);
return new Color(r, g, b);
}
}
```
这个测试类的输出可能会像这样:
```
Shape: Circle, Color: java.awt.Color[r=249,g=82,b=7], Filled: true
Shape: Triangle, Color: java.awt.Color[r=222,g=79,b=135], Filled: false
Shape: Triangle, Color: java.awt.Color[r=150,g=20,b=191], Filled: true
Shape: Circle, Color: java.awt.Color[r=43,g=76,b=159], Filled: false
Shape: Circle, Color: java.awt.Color[r=107,g=166,b=108], Filled: true
Shape: Circle, Color: java.awt.Color[r=137,g=5,b=216], Filled: true
Shape: Circle, Color: java.awt.Color[r=95,g=209,b=227], Filled: true
Shape: Triangle, Color: java.awt.Color[r=179,g=33,b=73], Filled: true
Shape: Circle, Color: java.awt.Color[r=91,g=12,b=123], Filled: false
Shape: Triangle, Color: java.awt.Color[r=63,g=140,b=17], Filled: true
```