java无忧网

标题: Shape抽象类 Trangle Rectangle Circle 子类 计算周长 和面积 [打印本页]

作者: java无忧网    时间: 2020-11-21 14:35
标题: Shape抽象类 Trangle Rectangle Circle 子类 计算周长 和面积


public class Test {

        public static void main(String[] args) {
                double a = 4, b = 5, c = 6;
                //三角形
                Trangle t = new Trangle(a, b, c);
                double area = t.getArea(a, b);
                double perimeter = t.getPerimeter();
                System.out.println("三角形的面积是: " + area);
                System.out.println("三角形的周长是:" + perimeter);
                System.out.println("是否组成三角形:"+t.isXJX());

                //矩形
                a = 3;
                b = 4;
                Tectangle r = new Tectangle();
                area = r.getArea(a, b);
                perimeter = r.getPerimeter(a, b);
                System.out.println("矩形的面积是: " + area);
                System.out.println("矩形的周长是: " + perimeter);

                //圆形
                Circle circle = new Circle(5);
                area = circle.getArea(3, 3);
                perimeter = circle.getPerimeter();
                System.out.println("圆形的面积是: " + area);
                System.out.println("圆形的周长是: " + perimeter);

        }

}

abstract class Shape {
    public abstract double getArea(double a,double b);
    public double getPerimeter(double a,double b,double c){
        return a+b+c;
    }

}

class Trangle extends Shape{
    private double a;

    private double b;

    private double c;

    private double perimeter;

    private double area;

    public Trangle(double a, double b, double c) {
            this.a = a;
            this.b = b;
            this.c = c;
    }

    public double getPerimeter(){
            perimeter= a+b+c;
            return perimeter;
    }

    public double getArea(double a,double b){
            double p=(a+b+c)/2;
            area= Math.sqrt(p*(p-a)*(p-b)*(p-c));
            return area;
    }

    public boolean isXJX(){
            if(a+b>c){
                    return true;
            }else if(a+c>b){
                    return true;
            }else if(b+c>a){
                    return true;
            }
            return false;
    }

}

class Tectangle extends Shape{
    private double a,b;
    private double perimeter;

        private double area;
    public double getArea(double a,double b){
            area= a*b;
            return area;
    }
    public double getPerimeter(double a,double b){
            perimeter= (a+b)*2;
            return perimeter;
    }
}


class Circle extends Shape{


    private double r;

    private double perimeter;

    private double area;

    public Circle(double radius) {

            this.r = radius;

    }

    public Circle() {

    }

    public double getPerimeter(){
            perimeter=2*Math.PI*r;
            return perimeter;
    }

    public double getArea(double a,double b){

         area=Math.PI*r*r;
         return area;
    }
}








欢迎光临 java无忧网 (http://www.javawyw.com/) Powered by Discuz! X3.2