实验目的
(1)掌握类的继承

(2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;

1)根据下面的要求实现圆类Circle。

1.圆类Circle的成员变量:radius表示圆的半径。

2.圆类Circle的方法成员:

 Circle():构造方法,将半径置0

 Circle(double r):构造方法,创建Circle对象时将半径初始化为r

 double getRadius():获得圆的半径值

 double getPerimeter():获得圆的周长

 void disp():将圆的半径和圆的周长,圆的面积输出到屏幕

(2)继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:

1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。

2.圆柱体类Cylinder的成员方法:

Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。

double getHeight():获得圆柱体的高

double getVol():获得圆柱体的体积

void dispVol():将圆柱体的体积输出到屏幕

3.按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积

(1)的实验代码:


package hlha;

public class Circle1 {
        private double radius;

        public double getArea() {                                     //获得圆的面积
            double area;
            area=getRadius()*Math.PI*getRadius();
            return area;
        }
        public double getPerimeter() {                           //获得圆的周长
            double perimeter;
            perimeter=2*getRadius()*Math.PI;
            return perimeter;
        }
        public double getRadius() {                               //获得圆的半径值
            return radius;
        }
        public void setRadius(double radius) {
            this.radius = radius;
        }
        public void Circle() {
            setRadius(0);
        }
        public void Circle(double r) {
            this.setRadius(r);
        }
        public void disp() {
            System.out.println("此圆半径为:"+getRadius());
                    System.out.println("此圆周长为:"+getPerimeter());
                    System.out.println("此圆面积为:"+getArea());
        }
    }


(2)(3)实验代码:


package hlha;
    import java.util.Scanner;
    public class Cylinder extends Circle1{
        private double height;
        public Cylinder(double r,double h){
            this.Circle(r);
            this.setHeight(h);
        }
        public void setHeight(double height) {
            this.height = height;
        }
        public double getHeight() {                                    //获得圆柱体的高
                    return height;
            }
        public double getVol() {                                         //获得圆柱体的体积
            double vol;
            vol=getArea()*getHeight();
            return vol;
            }
        public void dispVol() {                                         //将圆柱体的体积输出到屏幕
            System.out.println("此圆柱体的体积为:"+getVol());
            }


        public static void main(String args[]) {
            Scanner sum=new Scanner(System.in);
            System.out.println("请输入半径:");
            double num=sum.nextDouble();                                //获取r的值
            if(num<0) {
                System.out.println("半径不能为负请重新运行程序");            //对r的值进行判断 数据过大先不考虑,但数不可能为负数但不会返回上一级,只能这样结束
                return;
            }
            System.out.println("请输入高:");                               //获取h的值
            double  h=sum.nextDouble();
            if(h<0) {
                System.out.println("高不能为负请重新运行程序。");
                return;
            }
            Cylinder sum1=new Cylinder(num,h);
            sum1.disp();
            sum1.dispVol();
            }
    }


运行结果:

总结:

1.instanceof关键字:在java中可以使用instanceof关键字判断一个对象到底是不是哪个类的实例;对象instanceof类→返回boolean类型。
2.继承抽象类实现接口:一个子类可以同时继承抽象类和实现接口。
3.剩下还有强制转换时,先转换成父类,再强制转换。
其次因为国庆假期好像有点忘记了。需要再次牢记。

01-14 02:55