面向对象经典应用 计算几何图形的面积 (Java经典编程案例)

案例:对于几何图形,都有一些共同的属性,比如名字和面积,而计算面积的方法却不一样。本例子定义一个超类来实现输出名字的方法,并使用抽象方法来计算面积,代码有以下3步:

步骤一:定义一个抽象类Shape,该类中有2个方法,一个是获得图形名称的方法,使用反射机制获得类名称;另一个是获得图形面积的方法。

public abstract class Shape {
    public String getName() {//获得图形的名称
        return this.getClass().getSimpleName();
    }
    public abstract double getArea();//获得图形的面积
}

步骤2::创建圆形和矩形的类,都继承自Shape,并实现获得面积的抽象方法。

圆形:

public class Circle extends Shape {
    private double radius;
    public Circle(double radius) {//获得圆形的半径
        this.radius = radius;
    }
    @Override
    public double getArea() {//计算圆形的面积
        return Math.PI * Math.pow(radius, 2);
    }
}

矩形:

public class Rectangle extends Shape {
    private double length;
    private double width;
    public Rectangle(double length, double width) {//获得矩形的长和宽
        this.length = length;
        this.width = width;
    }
    @Override
    public double getArea() {//计算矩形的面积
        return length * width;
    }
}

步骤3::测试

public class Test {
    public static void main(String[] args) {
        Circle circle = new Circle(2);//创建圆形对象并将半径设置成1
        System.out.println("图形的名称是:" + circle.getName());
        System.out.println("图形的面积是" + circle.getArea());
        Rectangle rectangle = new Rectangle(3, 5);//创建矩形对象并将长和宽设置成1
        System.out.println("图形的名称是:" + rectangle.getName());
        System.out.println("图形的面积是:" + rectangle.getArea());
    }
}

测试结果如下图所示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cui_yonghua/article/details/93593662