• 第六周&java实验报告四


                                            实验报告:
    

    一.实验目的

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

    二.实验的内容

    (1)根据下面的要求实现圆类Circle。
    1.圆类Circle的成员变量:radius表示圆的半径。
    
    2.圆类Circle的方法成员:
    
           Circle():构造方法,将半径置0
    
           Circle(double r):构造方法,创建Circle对象时将半径初始化为r
    
           double getRadius():获得圆的半径值
    
           double getPerimeter():获得圆的周长
    
           void disp():将圆的半径和圆的周长,圆的面积输出到屏幕
    

    实验代码:

    package 第六周;
    
    public class Circle             // 圆类Circle的方法成员
    {
    	private double radius; 
    
    	public Circle()             // 构造方法,半径置零
    	{
    		radius = 0;
    	}                          
    
    	public Circle(double r)     // 构造方法,创建Circle对象时将半径初始化为r
    	{
    		radius = r;
    	}
    
    	public double getRadius()   // 获得圆半径
    	{
    		return radius;
    	}
    
    	public double getPerimeter() //获得圆周长
    	{
    		return 2 * Math.PI * radius;
    	}
    	public void disp()
    	{
            System.out.println("半径:  "+getRadius());
            System.out.println("周长:  "+getPerimeter());
            System.out.println("面积:  "+Math.pow(radius,2)*3.14);
        }
    }
    
    package 第六周;
    
    public class Text 
    {
    
    	public static void main(String[] args) 
    	{
    		Circle c = new Circle(5);
    		c.disp();
    	}
    
    }
    
    

    实验截图:

    错误截图:
    


    分析:Java在使用pow函数是也要有相关声明;
    改正:将计算面积的简洁代表公式pow(radius,2)*3.14更改为Math.pow(radius,2)*3.14;注意该声明首字母为大写。
    

    正确截图:
    

    (2)继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:
    
    1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。
    
    2.圆柱体类Cylinder的成员方法:
    
            Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。
    
            double getHeight():获得圆柱体的高
    
            double getVol():获得圆柱体的体积
    
            void dispVol():将圆柱体的体积输出到屏幕
    
    3.按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积
    

    实验代码:

    package 第六周;
    
    public class Cylinder extends Circle              // 继承第一题中的圆Circle类
    {
    	private double hight;                         // height表示圆柱体的高
    
    	public Cylinder() 
    	{
    
    	}
    
    	public Cylinder(double r, double h)           // 创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h
    	{
    		hight = h;
    		radius = r;
    	}
    
    	public double getHeight()                     // 获得圆柱体的高
    	{
    		return hight;
    	}
    
    	public double getVol()                        // 获得圆柱体的体积
    	{
    		return Math.pow(radius, 2) * 3.14 * hight;
    	}
    
    	public void dispVol()                        // 将圆柱体的体积输出到屏幕
    	{
    		System.out.println("例:圆的半径为 5 ;高为 6  
    
    
    ");
    		System.out.println("圆柱体的体积:  " + getVol());
    	}
    }
    
    package 第六周;
    
    public class Text 
    {
    
    	public static void main(String[] args) 
    	{
    		Cylinder cy = new Cylinder(5, 6);
    		cy.dispVol();
    
    		 /*
    		 Circle c = new Circle(5); 
    		 c.disp();
    		 */
    	}
    }
    

    实验截图:

    错误截图:
    

    分析:提示关键变量不可视。
    更正:更据提示修改该变量的修饰符private为protected 。
        扩展学习
            1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
            2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
            3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
    

    正确截图:
    

    学习总结:

    上周课堂学习为9月的最后一天,紧接的便是为期7天国庆假期,所以学习的新内容不多。上次以动物模拟变声器的实验进行学习了更多有关继承的知识,再是学习了继承抽象类实现接口,即一个子类可以同时继承抽象类和实现接口。抽象类关键词abstract;接口关键词interface。
    

    1、接口:接口类似于类,但接口的成员没有执行体,它只是方法、属性、事件和索引符的组合而已。接口不能被实例化,接口没有构造方法,没有字段。在应用程序中,接口就是一种规范,它封装了可以被多个类继承的公共部分。扩展学习:

        不允许使用访问修饰符(public,private,protected 或 internal),所有的接口成员都必须是公共的;
        接口成员不能包含代码实体;
        接口成员不能定义字段成员;
        接口成员不能用关键字static,virtual,abstrac t或 sealed 来定义;
        类型定义成员是禁止的。
    

    2、Java类的继承:继承是代码复用的一种形式,即在具有包含关系的类中,从属类继承主类的全部属性和方法,从而减少了代码冗余,提高了程序运行效率。Java 中类的继承是通过扩展其他类而形成新类来实现的,原来的类称为父类(super class)或基类,新类称为原来类的子类或派生类。在子类中,不仅包含父类的属性和方法,还可以增加新的属性和方法,使得父类的基本特征可被所有子类的对象共享。

    3、复习Java多态性:

    • 继承:在多态中必须存在有继承关系的子类和父类。
    • 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
    • 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才既能可以调用父类的方法,又能调用子类的方法。
  • 相关阅读:
    jumpserver sudo 权限控制模板
    nmap 端口扫描
    服务器常用性能测试脚本
    Mac 配置cron
    cURL的用法,加用户名和密码?
    mac 终端查看端口命令
    Mac电脑安装openresty
    BT详解,BT原理
    centos 7 添加swap
    centos 添加rpmfusion源,yum 安装 ffmpeg
  • 原文地址:https://www.cnblogs.com/youlanghua/p/11631847.html
Copyright © 2020-2023  润新知