java编写一个求圆形类、椭圆类、正方形类、等边三角形类面积的通用程序
时间: 2024-12-14 19:25:26 浏览: 10
在Java中,为了编写一个通用程序来求不同形状的面积,我们可以设计一个`Shape`接口,然后让`Circle`, `Ellipse`, `Rectangle` (正方形是一种特殊的矩形) 和 `EquilateralTriangle` 类实现这个接口。下面是一个基础的实现示例:
首先,定义一个`Shape`接口:
```java
public interface Shape {
double getArea();
}
```
接着,为每个具体的形状类实现该接口:
```java
// 圆形类
public class Circle implements Shape {
private double radius;
// 构造函数和getArea方法同上(与之前示例类似)
// ... 其他方法...
}
// 椭圆类
public class Ellipse implements Shape {
private double majorRadius;
private double minorRadius;
// 构造函数和getArea方法(计算公式与之前类似)
// ... 其他方法...
}
// 正方形类
public class Rectangle extends Square implements Shape { // Square接口尚未定义
private double sideLength;
// 构造函数和getArea方法(面积 = 边长 * 边长)
// ... 其他方法...
}
// 等边三角形类
public class EquilateralTriangle implements Shape {
private double sideLength;
// 构造函数和getArea方法(面积 = (sqrt(3) / 4) * 侧边长度^2)
// ... 其他方法...
}
```
最后,在`main`方法中,你可以创建一个`Shape`类型的集合,并针对每个形状实例化相应的类,然后调用`getArea`方法:
```java
public static void main(String[] args) {
Shape circle = new Circle(5);
Shape ellipse = new Ellipse(3, 2);
Shape rectangle = new Rectangle(4);
Shape triangle = new EquilateralTriangle(3);
double circleArea = circle.getArea();
double ellipseArea = ellipse.getArea();
double rectangleArea = rectangle.getArea();
double triangleArea = triangle.getArea();
// 打印每个形状的面积
System.out.println("Circle area: " + circleArea);
System.out.println("Ellipse area: " + ellipseArea);
System.out.println("Rectangle area: " + rectangleArea);
System.out.println("Triangle area: " + triangleArea);
}
```
阅读全文