设计一个接口Shape,其中包含计算面积和周长的抽象方法。 设计三个类:矩形类、圆形类和三角形类实现该接口,分别计算自己的面积和周长,并在测试类中测试这三个类的功能。 要求: Shape接口中应该包含计算面积和周长的抽象方法。 Circle、Rectangle和Triangle类应该实现Shape接口,并分别实现自己的计算面积和周长的方法。 在测试类中,创建三个类的对象,并调用它们的计算面积和周长的方法。
时间: 2024-02-25 19:54:31 浏览: 115
好的,以下是符合您要求的Java代码:
```
// Shape接口
interface Shape {
double getArea(); // 计算面积的抽象方法
double getPerimeter(); // 计算周长的抽象方法
}
// 矩形类
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;
}
@Override
public double getPerimeter() {
return 2 * (width + height);
}
}
// 圆形类
class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
// 三角形类
class Triangle implements Shape {
private double a;
private double b;
private double c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
@Override
public double getArea() {
double p = (a + b + c) / 2;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
@Override
public double getPerimeter() {
return a + b + c;
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Shape shape1 = new Rectangle(2, 3);
System.out.println("矩形的面积为:" + shape1.getArea() + ",周长为:" + shape1.getPerimeter());
Shape shape2 = new Circle(4);
System.out.println("圆形的面积为:" + shape2.getArea() + ",周长为:" + shape2.getPerimeter());
Shape shape3 = new Triangle(3, 4, 5);
System.out.println("三角形的面积为:" + shape3.getArea() + ",周长为:" + shape3.getPerimeter());
}
}
```
运行测试类后,输出结果如下:
```
矩形的面积为:6.0,周长为:10.0
圆形的面积为:50.26548245743669,周长为:25.132741228718345
三角形的面积为:6.0,周长为:12.0
```
阅读全文