设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类来继承图形类,并实现上述两个方法。并创建实例验证。

设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类来继承图形类,并实现上述两个方法。并创建实例验证。

直接上代码了

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

发布了69 篇原创文章 · 获赞 54 · 访问量 9577

猜你喜欢

转载自blog.csdn.net/kingtok/article/details/103064689