設計一個抽象類圖形類,在該類中包含有至少兩個抽象方法求周長和求面積,分別定義圓形類、長方形類、正方形類來繼承圖形類,並實現上述兩個方法。並創建實例驗證。

設計一個抽象類圖形類,在該類中包含有至少兩個抽象方法求周長和求面積,分別定義圓形類、長方形類、正方形類來繼承圖形類,並實現上述兩個方法。並創建實例驗證。

直接上代碼了

package ThirdDay;

 abstract class Shape {
    //計算面積
    public abstract Double calculateS();

    //計算周長
    public  abstract Double calculateC();
}

//長方形類
  class Rectangle extends  Shape{
     private double l;
     private double s;

    public Rectangle(double l, double s) {
        this.l = l;
        this.s = s;
    }

    public double getL() {
        return l;
    }

    public void setL(double l) {
        this.l = l;
    }

    public double getS() {
        return s;
    }

    public void setS(double s) {
        this.s = s;
    }

    @Override
    public Double calculateS() {
        return s*l;
    }

    @Override
    public Double calculateC() {
        return 2*(s+l);
    }

}

  class Square extends Shape{

     private double sideLength;

      public Square(double sideLength) {
          this.sideLength = sideLength;
      }

      public double getSideLength() {
          return sideLength;
      }

      public void setSideLength(double sideLength) {
          this.sideLength = sideLength;
      }

      @Override
      public Double calculateS() {
          return Math.pow(sideLength,2);
      }

      @Override
      public Double calculateC() {
          return 4*sideLength;
      }
  }

  class Triangle extends Shape{

     private double a;
     private double b;
     private double c;

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

      public double getA() {
          return a;
      }

      public void setA(double a) {
          this.a = a;
      }

      public double getB() {
          return b;
      }

      public void setB(double b) {
          this.b = b;
      }

      public double getC() {
          return c;
      }

      public void setC(double c) {
          this.c = c;
      }

      @Override
      public Double calculateS() {
          double s = (a + b + c) / 2;
          double area = Math.pow(s*((s - a)*(s - b)*(s - c)), 0.5);
          return area;
      }

      @Override
      public Double calculateC() {
          return a+b+c;
      }
  }


class Circle extends Shape{

    private double r;

      public Circle(double r) {
          this.r = r;
      }

      public double getR() {
          return r;
      }

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

      @Override
      public Double calculateS() {
          return Math.PI*r*r;
      }

      @Override
      public Double calculateC() {
          return 2*Math.PI*r;
      }
  }


  class Graphice {
      public static void main(String[] args) {
          Circle circle=new Circle(2.5);
          System.out.println("半徑爲:"+circle.getR()+"的圓面積爲:"+circle.calculateC());
          System.out.println("半徑爲:"+circle.getR()+"的圓周長爲:"+circle.calculateS());
          Triangle triangle=new Triangle(3,4,5);
          if (triangle.getA() > 0 && triangle.getB()> 0 && triangle.getC() > 0 &&
                  (triangle.getA()+ triangle.getB()) > triangle.getC() && (triangle.getA() + triangle.getC()) > triangle.getB() && (triangle.getB() + triangle.getC()) > triangle.getA()) {
              System.out.println("三角形的a,b,c三邊長爲:"+triangle.getA()+","+triangle.getB()+","+triangle.getC());
              System.out.println("三角形的周長爲 = " + triangle.calculateC());
              System.out.println("三角形的面積 = " + triangle.calculateS());
          }else {
              System.out.println("\n三角形三邊不合法! 三角形創建失敗! "
                      + "\n請重新輸入三邊\n");
          }
          Rectangle rectangle=new Rectangle(5,2);
          System.out.println("長爲:"+rectangle.getL()+"寬爲:"+rectangle.getS()+"的長方形面積爲:"+rectangle.calculateS());
          System.out.println("長爲:"+rectangle.getL()+"寬爲:"+rectangle.getS()+"的長方形周長爲:"+rectangle.calculateC());
          Square square=new Square(2);
          System.out.println("邊長爲:"+square.getSideLength()+"的正方形面積爲:"+square.calculateS());
          System.out.println("邊長爲:"+square.getSideLength()+"的正方形周長爲:"+square.calculateC());
      }
  }

運行結果如下

半徑爲:2.5的圓面積爲:15.707963267948966
半徑爲:2.5的圓周長爲:19.634954084936208
三角形的a,b,c三邊長爲:3.0,4.0,5.0
三角形的周長爲 = 12.0
三角形的面積 = 6.0
長爲:5.0寬爲:2.0的長方形面積爲:10.0
長爲:5.0寬爲:2.0的長方形周長爲:14.0
邊長爲:2.0的正方形面積爲:4.0
邊長爲:2.0的正方形周長爲:8.0

發佈了73 篇原創文章 · 獲贊 57 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章