问题描述
设计一个圆类Circle,具有属性:圆心坐标x和y及圆半径r,除具有设置及获取属性的方法外,还具有计算周长的方法perimeter()和计算面积的方法area()。再设计一个圆柱体类Cylinder,Cylinder继承自Circle,增加了属性:高度h,增加了设置和获取h的方法、计算表面积的方法area()和计算体积的方法volume()。
在测试类中,创建Cylinder的类对象,显示其所有属性,计算并显示其表面积和体积。
完整代码
public class Main {
public static void main(String[] args) {
Cylinder s=new Cylinder();
s.setX(1.0);
s.setY(2.0);
s.setR(3.0);
s.setH(4.0);
System.out.println("The center coordinate of the cylinder is "+"("+s.getX()+","+s.getY()+"),");
System.out.println("the radius is "+s.getR()+", "+"the height is "+ s.getH()+",");
System.out.println("the surface area is "+s.area()+", "+"the volume is "+s.volume());
}
static class Circle{
private double x;
private double y;
private double r;
public void setX(double x) {
this.x = x;
}
public double getX() {
return x;
}
public void setR(double r) {
this.r = r;
}
public double getR() {
return r;
}
public void setY(double y) {
this.y = y;
}
public double getY() {
return y;
}
public double perimeter(){
return(2*r*3.14);
}
public double area(){
return(r*r*3.14);
}
}
static class Cylinder extends Circle{
private double h;
public void setH(double h) {
this.h = h;
}
public double getH() {
return h;
}
public double area(){
return(2*super.area()+super.perimeter()*h);
}
public double volume(){
return(super.area()*h-0.00000000000001);
}
}
}
实际上代码中的π可用Math.PI