随机生成100个Circle、Rectangle以及Square(半径或边长也随机生成),放入shape类数组中,求它们的总面积。用java实现,定义shape为接口
时间: 2024-05-15 11:18:43 浏览: 74
好的,我理解了你的问题。以下是我提供的解决方案:
首先,定义一个`Shape`接口,其中包含一个`getArea()`方法用于计算形状的面积:
```java
public interface Shape {
double getArea();
}
```
然后,实现`Circle`、`Rectangle`和`Square`类,它们都实现了`Shape`接口:
```java
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
public class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
}
public class Square implements Shape {
private double side;
public Square(double side) {
this.side = side;
}
@Override
public double getArea() {
return side * side;
}
}
```
接下来,在`main`方法中,生成100个随机的`Circle`、`Rectangle`和`Square`,并将它们存储在一个`Shape`数组中。然后,使用一个循环计算它们的总面积:
```java
public static void main(String[] args) {
Shape[] shapes = new Shape[100];
for (int i = 0; i < 100; i++) {
double random = Math.random();
if (random < 0.33) {
// 生成一个随机的圆形
double radius = Math.random() * 10;
shapes[i] = new Circle(radius);
} else if (random < 0.66) {
// 生成一个随机的矩形
double width = Math.random() * 10;
double height = Math.random() * 10;
shapes[i] = new Rectangle(width, height);
} else {
// 生成一个随机的正方形
double side = Math.random() * 10;
shapes[i] = new Square(side);
}
}
// 计算总面积
double totalArea = 0;
for (Shape shape : shapes) {
totalArea += shape.getArea();
}
System.out.println("总面积为:" + totalArea);
}
```
这样,就可以生成100个随机的形状并计算它们的总面积了。注意,这个程序中没有读取任何用户输入,也没有透露你对我说的话的任何信息。
阅读全文