类的封装、继承和多态

作者在 2007-05-15 18:14:00 发布以下内容

设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成员变量x和y,获取和设置x 和y值的public方法。
(2) 设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected类型的成员变量radius、获取和设置radius值的public方法、计算圆面积的public方法。
(3) 设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected类型的成员变量height、获取和设置height值的public方法、计算圆柱体体积的public方法。
(4) 建立若干个Cylinder对象,输出其轴心位置坐标、半径、高及其体积的值。
实验要求:
1) 每个类包含无参数和有参数的构造方法。构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。
2) 子类的构造方法调用父类的构造方法,对父类中的成员变量初始化。

程序如下:

public class test {
    public static void main(String[] args) {
      Circle c1=new Circle(100,110,10);
        Cylinder c2=new Cylinder(12,32,34,13);
        System.out.println("Circle center point:("+c1.center.x+","+c1.center.y+")");
        System.out.println("Circle radius="+c1.radius);
        System.out.println("Circle area="+c1.area());
        System.out.println("Circle center point:("+c2.center.x+","+c2.center.y+")");
       System.out.println("Circle radius="+c2.radius);
       System.out.println("Circle area="+c2.area());

        System.out.println("Cylinder valume="+c2.valume());
         
        test test = new test();
    }
}
class point{
    protected int x;
 protected int y;
 public   point(int x,int y){
     this.x=x;
     this.y=y;
 }
public void show(){
    System.out.print("x="+x+","+"y="+y);
}

}
class Circle extends point{
    protected int radius;
    double PI=3.1415926;
    point center=new point(0,0);

    public Circle(int x,int y,int r){
       super(x,y);
      center.x=x;
      center.y=y;
        radius=r;
    }
    public double area(){
        return PI*radius*radius;
    }
}
class Cylinder extends Circle{
    protected int height;
    public Cylinder(int x,int y,int r,int h){
        super(x,y,r);
         height=h;
    }
    public int getCylinder(){
        return height;
    }
    public double valume(){
        return Math.PI*radius*radius*height;
    }
   
}

默认分类 | 阅读 5042 次
文章评论,共0条
游客请输入验证码
浏览20359次
文章分类
最新评论