• 第六周&java实验报告四


    一.实验目的

    (1)掌握类的继承

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

    一:特性继承性

    1)继承格式

     2)可以通过子类扩展父类

    3)只允许多层继承,不允许多重继承。
    4)子类不能直接访问父类中的私有操作,但可以通过get方法访问。
    5)子类构造方法中的super()。一般写类的时候要构造一个空方法,因为一般子类对象实例化之前会先默认调用父类中的构造方法,如果父类中没有构造方法,就会默认调用一个空的构造方法。 super()就是调用父类构造方法的语句。

     二:方法的覆写和重载 

    三、final关键字(表示的意思是最终的意思,也可以称为完结器)

     1)使用final声明的类不能有子类

    2)使用final声明的方法不能被子类所覆写
    3)使用final声明的变量级成为常量,常量不可以修改

     四、抽象类

     1)访问权限 abstract 返回值类型 方法名称(参数);

     2)抽象类和抽象方法都要使用abstract关键字声明

    3)抽象方法只需声明而不需要实现
    4)抽象类必须被子类继承,子类(如果不是抽象类)必须填写抽象类中的全部抽象方法

     五、对象的多态性

     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类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积

    实验代码

    public class Circle {
        private double radius;
    
        public double getRadius() {
            return radius;
        }
    
        public void setRadius(double radius) {
            this.radius = radius;
        }
    
        public Circle() {
            this.radius=0;
        }
        
        public Circle(double radius) {
            this.radius = radius;
        }
    
        public double getPerimeter() {
            double perimeter=2*radius*3.1415926;
            return perimeter;
        }
        
        public double getArea() {
            double area=radius*radius*3.1415926;
            return area;
        }
        
        public void disp() {
            System.out.println("半径:"+radius);
            System.out.println("周长:"+getPerimeter());
            System.out.println("面积:"+getArea());
        }
    }
    public class Cylinder extends Circle{
        
        private double height;
    
        public double getHeight() {
            return height;
        }
    
        public void setHeight(double height) {
            this.height = height;
        }
    
        public Cylinder(double radius, double height) {
            super(radius);
            this.height = height;
        }
        
        public double getVol() {
            double vol=super.getArea()*height;
            return vol;
        }
        
        public void disp() {
            super.disp();
            System.out.println("体积:"+getVol());
        }
    }
    public class Text{
    
        public static void main(String[] args) {
            Cylinder cyl1=new Cylinder(5,7);
            cyl1.disp();
    
        }
    
    }

    运行截图

     学习总结

     

  • 相关阅读:
    LVS的DR模式测试案例<仅个人记录>
    awk命令小结
    iptables命令提取总结,包含扩展模块<取自朱双印博客>
    如何配置nginx屏蔽恶意域名解析指向《包含隐藏nginx版本号》
    CentOS升级OpenSSL至OpenSSL 1.1.0f版本<其中有遇到libcrypto.so的问题>
    U-Mail企业邮箱如何导入授权文件
    Linux花生壳使用篇
    windows远程桌面连接时,显示发生身份验证错误,给函数提供的身份无效
    批量屏蔽符合条件的IP地址,支持添加白名单,IP段,增量,大于指定次数的IP
    rsync 定时备份<crontab+backrsync.sh> 简陋版
  • 原文地址:https://www.cnblogs.com/Markming/p/11631946.html
Copyright © 2020-2023  润新知