随机生成100个Circle、Rectangle以及Square(半径或边长也随机生成),放入shape类数组中,求它们的总面积。用java实现
时间: 2024-04-29 13:26:54 浏览: 90
好的,我理解您的问题。下面是我实现的Java代码:
```java
import java.util.Random;
public class Main {
public static void main(String[] args) {
Shape[] shapes = new Shape[100];
Random random = new Random();
double totalArea = 0;
for (int i = 0; i < 100; i++) {
switch (random.nextInt(3)) {
case 0:
shapes[i] = new Circle(random.nextDouble() * 10);
break;
case 1:
shapes[i] = new Rectangle(random.nextDouble() * 10, random.nextDouble() * 10);
break;
case 2:
shapes[i] = new Square(random.nextDouble() * 10);
break;
}
totalArea += shapes[i].getArea();
}
System.out.println("Total area: " + totalArea);
}
static abstract class Shape {
abstract double getArea();
}
static class Circle extends Shape {
private double radius;
Circle(double radius) {
this.radius = radius;
}
@Override
double getArea() {
return Math.PI * radius * radius;
}
}
static class Rectangle extends Shape {
private double width;
private double height;
Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
double getArea() {
return width * height;
}
}
static class Square extends Rectangle {
Square(double side) {
super(side, side);
}
}
}
```
这个程序使用了面向对象的思想,定义了一个`Shape`抽象类,它有一个抽象方法`getArea()`,用于计算该形状的面积。然后又定义了`Circle`、`Rectangle`和`Square`三个类,它们都是`Shape`的子类,分别表示圆、矩形和正方形。这些类都实现了`getArea()`方法。
在`main`函数中,我们创建了一个100个元素的`Shape`数组,然后用`Random`类随机生成100个圆、矩形和正方形,并将它们存储在数组中。随后,我们遍历数组,计算每个形状的面积,并将所有面积相加,最终输出总面积。
希望这个代码对您有所帮助!
阅读全文