Java编程中周长的和用什么表示_JAVA——编写一个计算各种形状的面积和周长的程序...

1.要求:

父类Shape2D为一个抽象类,其中包含计算周长和计算面积两个抽象方法。其他形状圆(Circle),三角形(Triangle)和长方形(Rectangle)类均继承自Shape2D类。而正方形Square类继承自Rectangle类。编写计算这些形状的面积和周长的各类的程序。

abstract public double getArea();//计算面积的方法 abstract public double getL();//计算周长的方法 如果三角形的边不满足要求,这两方法都返回-1 PI=3.14159 各类的构造函数如下: public Circle(double r);r为圆的半径 public Triangle(double a,double b,double c);a,b,c为三边的长 public Rectangle(double a,double b);a,b为长宽 public Square(double a);a为边长

2.父类,Shape2D类里面就是两个抽象方法即可

abstract classShaped2D {abstract public doublegetArea();abstract public doublegetL();

}

3.circle类,里面就用父类的两个方法来算圆的周长和面积

public class Circle extendsShaped2D{private doubler;public Circle(doubler) {this.r=r;

}public doublegetArea() {return r*Math.PI*r;

}public doublegetL() {return Math.PI*r*2;

}

}

4.triangle类也是使用父类的两个方法来计算三角形的周长

public class Triangle extendsShaped2D{private doublea,b,c;public Triangle(double a,double b,doublec) {this.a=a;this.b=b;this.c=c;

}public doublegetArea() {if(a+b>c&&a+c>b&&b+c>a) {double p=(a+b+c)/2.0;return Math.sqrt(p*(p-a)*(p-b)*(p-c));

}else

return -1;

}public doublegetL() {if(a+b>c&&a+c>b&&b+c>a) {return a+b+c;

}else

return -1;

}

}

4.Rectangle类也是使用父类的两个方法来计算长方形的周长和面积

public class Rectangle extendsShaped2D{private doublea,b;public Rectangle(double a,doubleb) {this.a=a;this.b=b;

}public doublegetArea() {return a*b;

}public doublegetL() {return 2*a+2*b;

}

}

5.Rectangle是Square的父类,直接引用父类的方法即可

public class Square extendsRectangle{public Square(doublea) {super(a, a);

}

}

6.主函数代码

public classmain {public static voidmain(String[] args) {//TODO Auto-generated method stub

Circle c1=new Circle(3);

System.out.println("周长为:"+c1.getL()+" 面积为:"+c1.getArea());

Triangle c2=new Triangle(1,3,3);

System.out.println("周长为:"+c2.getL()+" 面积为:"+c2.getArea());

Rectangle c3=new Rectangle(3,5);

System.out.println("周长为:"+c3.getL()+" 面积为:"+c3.getArea());

Square c4=new Square(4);

System.out.println("周长为:"+c4.getL()+" 面积为:"+c4.getArea());

}

}

7.试验结果

aee5d24473704a5068563d93da2b292e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值