java编写程序(1)定义抽象类Shape (2)定义Rectangle、Square、Circle类。 主类中随机生成100个形状,并用随机数进行赋初值,求100个形状的面积和。
时间: 2024-12-24 11:19:32 浏览: 3
在Java中,你可以按照以下步骤来编写这个程序:
首先,我们创建一个抽象类`Shape`作为所有形状的基础,它将包含一个计算面积的方法`getArea()`,因为每个形状都有其独特的面积计算方法:
```java
// 抽象类Shape
abstract class Shape {
protected double dimension; // 基础维度
public Shape(double dimension) {
this.dimension = dimension;
}
abstract double getArea();
// 共享的行为,例如打印形状信息
public void printInfo() {
System.out.println("This is a shape with dimension " + dimension);
}
}
```
然后,我们可以定义三个具体的形状类,如`Rectangle`、`Square`和`Circle`,它们分别继承自`Shape`并提供各自的面积计算方法:
```java
// Rectangle类
class Rectangle extends Shape {
public Rectangle(double length, double width) {
super(length);
dimension *= width; // 假设宽度也影响面积
}
@Override
double getArea() {
return dimension;
}
}
// Square类
class Square extends Shape {
public Square(double side) {
super(side);
}
@Override
double getArea() {
return Math.pow(dimension, 2); // 对边长度的平方
}
}
// Circle类
class Circle extends Shape {
private double radius;
public Circle(double radius) {
super(radius * 2); // 圆的半径用于计算直径
this.radius = radius;
}
@Override
double getArea() {
return Math.PI * Math.pow(radius, 2);
}
}
```
现在,在主类中,你可以创建一个数组或列表来存储这100种形状,并用随机数初始化它们:
```java
public class MainClass {
public static void main(String[] args) {
int count = 100;
Shape[] shapes = new Shape[count];
for (int i = 0; i < count; i++) {
Random rand = new Random();
double randomDim;
String type = rand.nextInt(3) == 0 ? "Rectangle" :
rand.nextInt(2) == 0 ? "Square" : "Circle"; // 随机选择形状类型
if (type.equals("Rectangle")) {
randomDim = rand.nextDouble(); // 长度或宽(假设方形有相同的边长)
shapes[i] = new Rectangle(randomDim, randomDim);
} else if (type.equals("Square")) {
randomDim = rand.nextDouble();
shapes[i] = new Square(randomDim);
} else { // type.equals("Circle")
randomDim = rand.nextDouble();
shapes[i] = new Circle(randomDim);
}
}
double totalArea = 0;
for (Shape shape : shapes) {
totalArea += shape.getArea();
shape.printInfo();
}
System.out.printf("Total area of %d shapes is %.2f%n", count, totalArea);
}
}
```
在这个程序中,通过随机选择形状类型,然后实例化相应的类,我们可以得到100个形状的总面积。
阅读全文