第六周&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  \n\n\n");
		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多态性:
- 继承:在多态中必须存在有继承关系的子类和父类。
 - 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
 - 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才既能可以调用父类的方法,又能调用子类的方法。
 
第六周&java实验报告四的更多相关文章
- 第六周&Java实验报告四(类的继承)
		
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
 - 第六周总结&实验报告四
		
这周是放国庆节的假,所有没有进行深入的学习,只是写了个实验的题目,也发现了自己在基础上还是要加强学习. 实验四 类的继承 一. 实验目的 (1) 掌握类的继承方法: (2) 变量的继承和覆盖,方法的继 ...
 - 第六周作业&实验报告四
		
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
 - JAVA实验报告四及第六周总结
		
JAVA第六周作业 实验报告四 第一题 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆的半径. 2.圆类Circle的方法成员: Circle():构造 ...
 - 第六周学习总结&java实验报告四
		
第六周学习总结&java实验报告四 学习总结: 上一周因为接近国庆假期,所以老师没有讲太多的新知识点,只要是带我们一起做了一个动物模拟变声器的实验,进一步了解和学习到继承的 有关知识点和应用: ...
 - 20155310第一周JAVA实验报告
		
20155310第一周JAVA实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 使用JDK和IDE编译.运行简单 ...
 - 20145310第一周JAVA实验报告
		
20145310第一周JAVA实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 使用JDK和IDE编译.运行简单 ...
 - 第六周课程总结&java实验报告四
		
第六周课程总结: 一.instanceof关键字 1.作用:在Java中可以使用instanceof关键字判断一个对象到底是哪个类的实例. 2.格式:对象 instanceof 类 -> 返回b ...
 - 第六次java实验报告
		
Java实验报告 班级 计科二班 学号20188437 姓名 何磊 完成时间 2019/10/17 评分等级 实验四 类的继承 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法 ...
 
随机推荐
- Java进阶知识16 Spring创建IOC容器的两种方式
			
1.直接得到 IOC 容器对象 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("app ...
 - [Luogu] 花神游历各国
			
https://www.luogu.org/problemnew/show/P4145 线段树区间求和 + 区间开根号 对1e9的数开根号下取整用不了几次就会<=1 因此暴力开根号,记录区间最大 ...
 - DP(第一版)
			
序 任何一种具有递推或者递归形式的计算过程,都叫做动态规划 如果你一开始学的时候就不会DP,那么你在考试的时候就一定不会想到用动态规划! 需要进行掌握的内容 1)DP中的基本概念 2)状态 3)转移方 ...
 - 【集训队作业2018】line
			
DP方程十分简单,考虑前对后贡献即可. \(f_i = \min_{l_i \leq j < i} \left\{ f_j + \left(\max_{j < k \leq i} \lef ...
 - [mysql]查看mysql执行情况的几种方法
			
mysql系统变量分为全局变量和会话变量,全局变量的修改影响到整个服务器,会话变量修改只影响当前的会话. 查看log日志是否开启 show variables like 'general_log' s ...
 - 【java设计模式】-02工厂模式
			
工厂模式简述 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客 ...
 - find命令计算代码行数
			
[anonymous@localhost ~/lvs/ipvsadm- -regex '.*Makefile.*' -o -regex '.*\.[ch]' -exec cat {} \; | wc ...
 - Python 寻找文件夹里以特定格式结尾的文件
			
代码: import os, re, time name = 'linuxday01' flags = True# 文件夹bi_test中的文件列表 print os.listdir('E:\\bi_ ...
 - LC 871. Minimum Number of Refueling Stops 【lock, hard】
			
A car travels from a starting position to a destination which is target miles east of the starting p ...
 - Repeater, DataList, 和GridView的区别及使用
			
从对象层次图可以看出,Repeater是最轻最小的控件,它仅仅继承了基本控件的功能,包括ID属性.子控件集合等.另一方面,DataList和DataGrid则继承了WebControl功能,包括样式和 ...