本文将介绍如何使用Java面向对象编程实现形状的周长与面积的计算,通过继承与多态来改进设计,使得代码更加简洁、易于维护。
- 定义抽象类Shape
首先,我们需要定义一个抽象类Shape,该类包含一个不可变静态常量double PI,以及两个抽象方法getPerimeter和getArea,分别用于计算形状的周长和面积。以下是Shape类的代码:
public abstract class Shape {
public static final double PI = 3.14;
public abstract double getPerimeter();
public abstract double getArea();
}
- 定义Rectangle与Circle类
接下来,我们需要定义两个类Rectangle和Circle,它们都继承自Shape类,并实现getPerimeter和getArea方法。Rectangle类包含一个private width和一个private length属性,表示矩形的宽度和长度;Circle类包含一个private radius属性,表示圆的半径。以下是Rectangle和Circle类的代码:
public class Rectangle extends Shape {
private int width;
private int length;
public Rectangle(int width, int length) {
this.width = width;
this.length = length;
}
public double getPerimeter() {
return 2 * (width + length);
}
public double getArea() {
return width * length;
}
public String toString() {
return "Rectangle [width=" + width + ", length=" + length + "]";
}
}
public class Circle extends Shape {
private int radius;
public Circle(int radius) {
this.radius = radius;
}
public double getPerimeter() {
return 2 * PI * radius;
}
public double getArea() {
return PI * radius * radius;
}