求图形的周长和面积。 长方形(Rectangel)和圆形(Cycle)都属于几何图形(Shape),都有周长(perimeter)和面积(area),并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长。并设计一个测试类进行演示。
时间: 2024-12-25 21:30:57 浏览: 0
java面试题集包括javase javaee oracle web等知道
在设计一个支持长方形和圆形的图形类及其实现周长和面积功能的程序时,我们可以采用面向对象的设计思路,创建一个抽象类`Shape`作为基础,然后派生出两个具体的子类`Rectangle`和`Circle`。这里是一个简化的例子:
首先,我们创建一个抽象类 `Shape`:
```java
public abstract class Shape {
protected double dimension; // 如果是二维形状,可以用一个维度
public Shape(double dimension) {
this.dimension = dimension;
}
// 抽象方法,子类需要覆盖
public abstract double getPerimeter();
public abstract double getArea();
public void printInfo() {
System.out.println("Base Shape with dimension " + dimension);
}
}
```
接着,针对长方形和圆形,分别创建子类:
1. `Rectangle` 类:
```java
public class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
super(length * width); // 对于矩形,面积等于长度乘以宽度
this.length = length;
this.width = width;
}
@Override
public double getPerimeter() {
return 2 * (length + width);
}
@Override
public double getArea() {
return length * width;
}
}
```
2. `Circle` 类:
```java
public class Circle extends Shape {
private double radius;
public Circle(double radius) {
super(Math.PI * radius * radius); // 对于圆,面积等于半径的平方乘以π
this.radius = radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
```
现在我们有了一个通用的`Shape`类和两个实现类`Rectangle`和`Circle`。为了演示如何计算这些图形的周长和面积,我们可以创建一个测试类`Main`:
```java
public class Main {
public static void main(String[] args) {
Shape rectangle = new Rectangle(5, 4);
Shape circle = new Circle(3);
rectangle.printInfo();
System.out.println("Rectangle perimeter: " + rectangle.getPerimeter());
System.out.println("Rectangle area: " + rectangle.getArea());
circle.printInfo();
System.out.println("Circle perimeter: " + circle.getPerimeter());
System.out.println("Circle area: " + circle.getArea());
}
}
```
运行这个`main`方法会输出每个图形的信息以及对应的周长和面积。
阅读全文