案例介绍:
(1)定义一个名为Cylinder类表示圆柱,它继承Circle类,要求定义一个变量height表示圆柱高度。覆盖getArea()方法求圆柱的表面积,定义getVolume()方法求圆柱体,定义默认构造方法和带radius和height两个参数的构造方法。
(2)编写测试程序,提示用户输入圆柱的底面圆的半径和高度,程序创建一个圆柱对象,计算并输出圆柱表面积和体积。
Cylinder类代码:
import java.util.Scanner;
public class Cylinder extends Circle{
private double height;
public Cylinder(){}
public Cylinder (double radius, double height) {
this. radius = radius;
this.height = height;
}
@Override
public double getArea(){
double area = getPerimeter() * height + radius * radius * 3.14 * 2;
return area;
}
public double getVolume(){
return super.getArea() * height;
}
public static void main(String[] args){
double radius, height;
Scanner input = new Scanner(System.in);
System.out. println("请输入圆柱的底面半径:");
radius =input. nextDouble() ;
System. out. println("请输人圆柱的高:");
height = input.nextDouble();
Cylinder c = new Cylinder(radius,height) ;
System.out.println("圆柱表面积是:"+ c. getArea());
System.out.println("圆柱体积是:"+ c.getVolume());
}
}
Circle类代码:
public class Circle {
double centerX;
double centerY;
double radius;
public Circle(){
this(1.0);
}
public Circle(double radius){
this.radius = radius;
}
public double getRadius(){
return radius;
}
public void setRadius(double radius){
this.radius = radius;
}
public double getArea(){
double area = 3.14 * radius *radius;
return area;
}
public double getPerimeter(){
double perimeter = 2 * 3.14 * radius;
return perimeter;
}
public static void main(String[] args){
Circle c = new Circle();
System.out.println(c.getRadius());
c.setRadius(10);
System.out.println(c.getArea());
System.out.println(c.getPerimeter());
}
}
案例运行图: