定义一个接口( Shape ),包括求周长 getPerimeter 和求面积 getArea 抽象方法,然后在实现类 Circle 类和 Rectangle 类中求长方形( Rectangle )和圆( Circle )的周长和面积。 1)(10分)完成 Shape 接口, Circle 类, Rectangle 类的设计。 2)(10分)在测试类中定义一个 Shape 类型,通过从控制台输入 Circle 类对象的半径和 Rectangle 类对象长和宽,求出图形
时间: 2024-02-21 08:57:11 浏览: 84
1. Shape 接口设计:
```java
public interface Shape {
double getPerimeter(); // 求周长
double getArea(); // 求面积
}
```
2. Circle 类设计:
```java
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
```
3. Rectangle 类设计:
```java
public class Rectangle implements Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double getPerimeter() {
return 2 * (length + width);
}
@Override
public double getArea() {
return length * width;
}
}
```
4. 测试类实现:
```java
import java.util.Scanner;
public class TestShape {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入圆的半径:");
double radius = scanner.nextDouble();
Circle circle = new Circle(radius);
System.out.println("圆的周长为:" + circle.getPerimeter());
System.out.println("圆的面积为:" + circle.getArea());
System.out.print("请输入长方形的长:");
double length = scanner.nextDouble();
System.out.print("请输入长方形的宽:");
double width = scanner.nextDouble();
Rectangle rectangle = new Rectangle(length, width);
System.out.println("长方形的周长为:" + rectangle.getPerimeter());
System.out.println("长方形的面积为:" + rectangle.getArea());
}
}
```
输入圆的半径和长方形的长宽,输出结果如下:
```
请输入圆的半径:2.5
圆的周长为:15.707963267948966
圆的面积为:19.634954084936208
请输入长方形的长:3
请输入长方形的宽:4
长方形的周长为:14.0
长方形的面积为:12.0
```
阅读全文