编程语言
首页 > 编程语言> > [案例4-5]图形的面积与周长计算程序

[案例4-5]图形的面积与周长计算程序

作者:互联网

案例描述:

长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长。

运行结果:

 

代码如下:

创建抽象类:


/**
 * 2022/3/20
 */
public abstract class Shape {
    // 获取面积
    abstract double Area();
    // 获取周长
    abstract double Perimeter();
}

创建长方形类和正方形类继承抽象类:


/**
 * 2022/3/20
 */
public class Circular extends Shape{
    // 圆形周长:2Πr ,面积:Πr的平方

    private double radius = 0;   // 半径
    private final double PI = 3.14; // 圆周率

    public Circular(double radius) {
        this.radius = radius;
    }

    @Override
    double Area() {  // 面积
        return PI*radius*radius;
    }

    @Override
    double Perimeter() {  // 周长
        return 2*radius*PI;
    }
}

/**
 * 2022/3/20
 */
public class Rectangle extends Shape{
    // 长方形面积:长*宽,周长:2*(长+宽)

    private double length = 0;  // 长
    private double width = 0;   // 宽

    public Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    }

    @Override
    double Area() {  // 面积
        return length*width;
    }

    @Override
    double Perimeter() { // 周长
        return 2*(length+width);
    }
}

创建计算周长与面积的类:


/**
 * 2022/3/20
 */
public class ShapeCaculate {
    // 创建可以计算任意子类面积的方法
    public void calArea(Shape shape){
        System.out.println(shape.Area());
    }
    // 创建可以计算任意子类周长的方法
    public void calPerimeter(Shape shape){
        System.out.println(shape.Perimeter());
    }
}

最后创建测试类:


import java.util.Scanner;

/**
 * 2022/3/20
 */
public class Demo {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要计算的长方形的长和宽:");
        double length = in.nextDouble();
        double width = in.nextDouble();
        System.out.println("请输入要计算的圆形的半径:");
        double radius = in.nextDouble();
        // 创建图形计算器对象
        ShapeCaculate sc = new ShapeCaculate();
        // 创建长方形和圆形对象
        Rectangle r = new Rectangle(length,width);
        Circular c = new Circular(radius);
        System.out.println("长方形的周长为");
        // 通过计算机对象调方法,实现输出
        sc.calPerimeter(r);
        System.out.println("长方形的面积为:");
        sc.calArea(r);
        System.out.println("圆形的周长为:");
        sc.calPerimeter(c);
        System.out.println("圆形的面积为:");
        sc.calArea(c);
    }
}

标签:周长,width,double,System,案例,radius,图形,public
来源: https://blog.csdn.net/qq_58652572/article/details/123609616