定义一个图形类和(子类)圆形类、矩形类 图像类:有求周长和求面积和显示图形信息的功能。 圆形类:包含圆心和半径,重写求周长和求面积的方法 矩形类:包含长和宽,重写求周长和求面积的方法
时间: 2025-04-08 17:04:18 浏览: 53
### 图形类的设计与实现
为了满足需求,可以基于面向对象的思想设计一个 `Shape` 抽象类作为基类,并定义其子类 `Rect` 和 `Circle` 来分别表示矩形和圆形。以下是具体设计方案:
#### 1. 定义抽象类 `Shape`
抽象类 `Shape` 提供了两个基本方法:`getPerimeter()` 计算周长,`getArea()` 计算面积。这些方法被声明为抽象方法,强制所有子类都必须提供具体的实现。
```java
public abstract class Shape {
// 获取周长的方法
public abstract double getPerimeter();
// 获取面积的方法
public abstract double getArea();
// 显示图形信息的方法
public abstract void displayInfo();
}
```
此部分来源于对抽象类功能的需求描述[^2]。
---
#### 2. 实现子类 `Circle` (圆形)
圆形的属性包括半径 (`radius`),通过该属性可计算周长和面积。同时实现了父类中的抽象方法并提供了额外的信息展示逻辑。
```java
public class Circle extends Shape {
private int radius;
public Circle() {}
public Circle(int radius) {
this.radius = radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius; // 周长公式 C=2πr
}
@Override
public double getArea() {
return Math.PI * radius * radius; // 面积公式 A=πr²
}
@Override
public void displayInfo() {
System.out.println("这是一个圆形:");
System.out.println("半径: " + radius);
System.out.println("周长: " + getPerimeter());
System.out.println("面积: " + getArea());
}
}
```
上述代码片段展示了如何利用继承机制扩展自定义行为来完成特定任务[^4]。
---
#### 3. 实现子类 `Rect` (矩形)
对于矩形而言,需要指定宽度 (`width`) 和高度 (`height`) 属性以便于后续运算操作;同样遵循相同模式重写必要函数以适应不同类型的几何实体特性要求。
```java
public class Rect extends Shape {
private int width;
private int height;
public Rect() {}
public Rect(int width, int height) {
this.width = width;
this.height = height;
}
@Override
public double getPerimeter() {
return 2 * (width + height); // 矩形周长 P=2(w+h)
}
@Override
public double getArea() {
return width * height; // 矩形面积 S=w*h
}
@Override
public void displayInfo() {
System.out.println("这是一个矩形:");
System.out.println("宽: " + width);
System.out.println("高: " + height);
System.out.println("周长: " + getPerimeter());
System.out.println("面积: " + getArea());
}
}
```
这部分内容体现了针对另一种常见二维平面封闭区域——矩形的具体处理方式[^1]。
---
#### 测试程序
下面是一个简单的测试案例,演示如何创建实例并通过调用相应成员函数获取所需数值结果。
```java
public class Main {
public static void main(String[] args) {
// 创建圆形对象
Circle circle = new Circle(5);
circle.displayInfo();
System.out.println("-------------------");
// 创建矩形对象
Rect rect = new Rect(4, 6);
rect.displayInfo();
}
}
```
运行以上代码将会打印出关于所构建形状的相关数据详情。
---
阅读全文
相关推荐
















