Java 小练习(图形面积计算器)

建立一个图形父类:


public class Shape {

    //图形类,所有图形的爸比,具有计算面积的方法

    //计算的方法由子类重写实现
    public double area() {

        return 0;
    }

    public Shape() {
        super();
    }


}

建立一个矩形子类:


public class Rect extends Shape {
    //1.定义变量
    //2.生成set和get 方法
    //3.生成构造方法
    //4.实现 area 计算面积的方法

    private double w;//宽
    private double h;//高


    public Rect() {
        super();
    }


    public Rect(double w, double h) {
        super();
        this.w = w;
        this.h = h;
    }

    public double getW() {
        return w;
    }
    public void setW(double w) {
        this.w = w;
    }
    public double getH() {
        return h;
    }
    public void setH(double h) {
        this.h = h;
    }

    @Override
    public double area() {
        return w * h;
    }

}

建立一个三角形子类:

public class Triangle extends Shape {

    private double w;//宽
    private double h;//高


    @Override
    public double area() {

        return (w * h) / 2;
    }


    public double getW() {
        return w;
    }


    public void setW(double w) {
        this.w = w;
    }


    public double getH() {
        return h;
    }


    public void setH(double h) {
        this.h = h;
    }


    public Triangle(double w, double h) {
        super();
        this.w = w;
        this.h = h;
    }


    public Triangle() {
        super();
        // TODO Auto-generated constructor stub
    }

}

建立一个圆形子类:


public class Circle extends Shape {

    private double  r ;

    public double getRadius() {
        return r;
    }

    public void setRadius(double r) {
        this.r = r;
    }

    @Override
    public double area() {

        return r * r * Math.PI;
    }
    public Circle(double r) {
        super();
        this.r = r;
    }

    public Circle() {
        super();
        // TODO Auto-generated constructor stub
    }


}

建立一个 计算图形相加的类:


public class Computer {

    /**
     * 计算两个图形面积的和
     * @param s1
     * @param s2
     * @return
     */
//  public double sumArea(Shape s1,Shape s2) {
//      
//      double area1 = s1.area();
//      double area2 = s2.area();
//      
//      return area1 + area2;
    //无论传入多少个数据,族中都是放入了 shapes 数组中
    public double sumArea(Shape ...shapes){

        double totalArea = 0;//累加的和

        //使用for-each的方式遍历 shapes 数组
        for(Shape shape:shapes) {

        double area = shape.area();//获取每个图形的面积

        totalArea += area;//进行累加
        }
        return totalArea;//返回结果


    }
}

建立一个main方法运行 的类

public class Application {

    public static void main(String[] args) {

        //房屋面积计算器

        //创建计算器
        Computer com = new Computer();

        //创建两个矩形
        Rect r1 = new Rect(3,5);
        Rect r2 = new Rect(3,4);

        //计算矩形面积
        double totalArea1 = com.sumArea(r1, r2);
        System.out.println("矩形面积为" + totalArea1);

        //创建两个三角形
        Triangle t1 = new Triangle(3,5);
        Triangle t2 = new Triangle(3,4);

        //计算三角形面积
        double totalArea2 = com.sumArea(t1, t2);
        System.out.println("三角面积为" + totalArea2);

        //创建两个圆形
        Circle c1 = new Circle(2);
        Circle c2 = new Circle(1);
        //计算圆的面积 
        double totalArea3 = com.sumArea(c1, c2);
        System.out.println("圆的面积为" + totalArea3);
        //计算所有图形混合总面积
        double totalArea4 = com.sumArea(r1,r2,t1,t2,c1,c2);
        System.out.println("总面积为" + totalArea4);
    }

}

猜你喜欢

转载自blog.csdn.net/ilovehua521/article/details/82414051