要求:父类Shape2D为一个抽象类,其中包含计算周长和计算面积两个方法。其他形状圆(Circle),三角形(Triangle)和长方形(Rectangle)均继承自Shape2D类。而Square继承自Rectangle类。编写测试类来计算这些形状的面积。
提示:不同的形状包含的属性应该不同,构造函数应该不同,计算周长和面积的方法也应该不同。
代码如下:
shape父类:
package shape;
/**
* @usefor learn
* @author 芳芳
*
*/
public abstract class Shape2D {
public abstract double getGirth();//周长
public abstract double getArea();//面积
public double getCircumference() {
// TODO 自动生成的方法存根
return 0;
}
}
Circle类:
package shape;
public class circle extends Shape2D {
private double r; //圆的半径
public circle(double r) {
this.r = r;
}
@Override
public double getCircumference() {
return 2*Math.PI*r;
}
@Override
public double getArea() {
return Math.PI*r*r;
}
@Override
public double getGirth() {
return 0;
}
}
Triangle类:
package shape;
/**
* Suffer learn
* @author 芳芳
*
*/
public class triangle extends Shape2D {
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;
}
@Override
public double getCircumference() {
// TODO Auto-generated method stub
return a+b+c;
}
@Override
public double getArea() {
// TODO Auto-generated method stub
double p = (a+b+c)/2.0;
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
@Override
public double getGirth() {
// TODO 自动生成的方法存根
return 0;
}
}
Rectangle类:
package shape;
/**
* @usefor learn
* @author 芳芳
*
*/
public class rectangle extends Shape2D {
private double a;
private double b;
public rectangle(double a,double b) {
this.a=a;
this.b=b;
}
public double getCircumference() {
return 2*(a+b);
}
public double getArea() {
return a*b;
}
public double getGirth() {
return 0;
}
}
***
the test of shape:
package shape;
public class theTestOfShape {
public static void main(String[] args) {
rectangle Rectrect=new rectangle(3, 8);
System.out.println("长为3,宽是8的矩形的周长是: "+Rectrect.getCircumference());
System.out.println("长为3,宽是8的矩形的面积是: "+Rectrect.getArea());
//测试圆形类,求圆形的周长和面积
circle circle=new circle(9);
System.out.println("\n半径是9的圆的周长是: "+circle.getCircumference());
System.out.println("半径是9的圆的面积是: "+circle.getArea());
//测试三角形类,求三角形的周长和面积
triangle triangleTest=new triangle(3,4,5);
System.out.println("\n边长为3,4,5的三角形的周长是: "+triangleTest.getCircumference());
System.out.println("边长为3,4,5的三角形的面积是: "+triangleTest.getArea());
}
}
运行结果如下:
- 点赞
- 收藏
- 分享
-
- 文章举报