java实验6继承与接口

上传人:xiao****1972 文档编号:83806133 上传时间:2019-03-01 格式:DOC 页数:7 大小:70KB
返回 下载 相关 举报
java实验6继承与接口_第1页
第1页 / 共7页
java实验6继承与接口_第2页
第2页 / 共7页
java实验6继承与接口_第3页
第3页 / 共7页
java实验6继承与接口_第4页
第4页 / 共7页
java实验6继承与接口_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《java实验6继承与接口》由会员分享,可在线阅读,更多相关《java实验6继承与接口(7页珍藏版)》请在金锄头文库上搜索。

1、山西大学计算机与信息技术学院实验报告姓 名学 号专业班级课程名称 Java实验实验日期成 绩指导教师批改日期实验名称 实验 6 继承与接口实验目的1、掌握java 继承中父类及其子类的定义方法。2、掌握子类重写父类同名方法的方法。3、掌握接口的用法。(1) 学习如何定义接口 ;(2) 掌握接口的实现方式 ;(3) 使用实现了接口的类 ; (4) 理解接口与抽象类的区别。实验要求1、 复习理论教学中所学的内容。2、 认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。3、 认真总结实验并书写实验报告。 实验内容1、 类的继承性练习(1) 程序源代码如下。public class Stud

2、entprotected String xm; /姓名,具有保护修饰符的成员变量protected int xh;/学号void setdata(String xm,int xh) /设置数据的方法this.xm=xm;this.xh=xh;public void print() /输出数据的方法System.out.println(xm+, +xh);(2) 编译源并运行程序。贴图如下(二)创建将被继承的类(1) 程序功能:通过Student类产生子类CollegeStudent,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、bj(bj)。在程序中调用了

3、父类的print 方法,同时可以看出子类也具有该方法。程序代码:运行结果贴图:(三)了解成员方法的覆盖方式(1) 编写覆盖了Object 类toString方法的一个类,并用System.out.println()输出该类的一个对象。程序代码:运行结果贴图:(2) 试着以Point类为例,尝试为Object类的clone()和equals()方法进行覆盖,Point类包含私有成员x,y,构造方法1(包含两个参数a,b),构造方法2(参数为Point p),clone方法,equals方法,toString方法。用TestPoint类进行测试。程序代码:运行结果贴图:(四)this、super和

4、super()的使用(1) 程序功能:程序功能:说明this、super 和super()的用法。程序首先定义Point(点)类,然后创建点的子类Line(线)。最后通过TestLine类输出线段的长度。程序中通过super(a,b)调用父类Point 的构造方法为父类的x 和y 赋值。在子类Line 的setLine方法中,因为参数名和成员变量名相同,为给成员变量赋值,使用this 引用,告诉编译器是为当前类的成员变量赋值。在length 和toString 方法中使用父类成员变量时,使用super 引用,告诉编译器使用的是父类的成员变量。程序代码:运行结果贴图:(五) 接口的实现与运用实验

5、任务 :本实验的任务是设计和实现一个 Soundable 接口 , 该接口具有发声功能 , 同时还能够调节声音大小。 Soundable 接口的这些功能将会由 3 种声音设备来具体实现 , 它们分别是收音机 Radio 、随身昕 Walkman 和手机 Mobilephone 。最后还要设计一个应用程序类来使用这些实现了 Soundable 接口的声音设备类。程序运行时 , 先询问用户想听哪种设备 , 然后程序就会按照该设备的工作方式来发出声音。实验步骤 :(1) 仔细阅读程序, 并完成其中的代码1代码3。/ InterfaceTest.javaimport java.util.Scanner

6、;interface Soundable public void increaseVolume( ); public void decreaseVolume( ); public void stopSound( ); public void playSound( );class Radio implements Soundable public void increaseVolume( ) System.out.println(增大收音机音量); public void decreaseVolume( ) System.out.println(减小收音机音量); public void sto

7、pSound( ) System.out.println(关闭收音机); public void playSound( ) System.out.println(收音机播放广播); class Walkman implements Soundable public void increaseVolume( ) System.out.println(增大随声听音量); public void decreaseVolume( ) 代码1 / 输出减小随声听音量 public void stopSound( ) System.out.println(关闭随声听); public void playS

8、ound( ) System.out.println(随声听发出音乐); class Mobilephone implements Soundable public void increaseVolume( ) System.out.println(增大手机音量); public void decreaseVolume( ) System.out.println(减小手机音量); public void stopSound( ) System.out.println(关闭手机); public void playSound( ) System.out.println(手机发出来电铃声); cl

9、ass People private String name; private int age; public void listen(Soundable s) s.playSound( ); public class InterfaceTest public static void main(String args) int i; People sportsman = new People( ); Scanner scanner = new Scanner(System.in); Soundable soundDevice = new Soundable3; /往声音设备数组中放入能发声的设

10、备 soundDevice0 = new Radio( ); soundDevice1 = new Walkman( ); 代码2 /创建手机对象并赋值给soundDevice2 System.out.println(你想听什么? 请输入选择:0-收音机 1-随声听 2-手机); i = scanner.nextInt( ); /开始听声音 sportsman.listen(soundDevicei); soundDevicei.increaseVolume( ); 代码3 /调用stopSound( )方法 (2) 打开文本编辑器编辑 InterfaceTest.java 并保存 , 然后在

11、Eclipse 环境中进行编译 , 编译的结果将会产生 6 个 class 文件 , 其中包括 Soundable.class, 虽然 Soundable 本身是一个接口 , 但编译之后也会产生 class 文件。(3) 编译之后运行这个程序 , 观察所得结果。思考(1) 请问在 InterfaceTest 类中 ,SoundDevice 数组是什么类型的 , 该数组为什么能存放 3 种不同的对象 Radio、Walkman 和 Mobilephone 呢 ?答 (2) 在程序中 ,Soundable 是一个接口 , 那么该接口是否可以被实例化呢 ? 请在InterfaceTest 类的 ma

12、in() 方法中加入以下语句试验一下 , 并分析结果。Soundable Sound=new Soundable(),答(3) 现在假定要为程序增加一个闹钟类 Clock, 该类也实现 Soundable 接口 , 能够发出滴答声 , 请将以下的 Clock 类加入到 InterfaceTest.java 程序中 , 并在 InterfaceTest 类的 main() 方法中加入 SoundDevice3 new Clock(); 语句。class Clock implements Soundablepublic void Stopsound()System.out.println( 关闭闹

13、钟 );public void Playsound()system.out.println( 闹钟发出滴答声 ); 修改之后 , 重新编译 InterfaceTest.java 并运行它 , 观察结果。(4) 在第 (3) 小题中由于新加入的 Clock 类仅仅实现了 Soundable 接口的stopsound() 和 playsound() 方法 , 而 increaseVolume() 和 decreaseVolume() 方法没有实现 , 因此它实质上是一个抽象类 , 而抽象类是不能实例化的 , 所以导致编译错误。但是按照常理 , 闹钟的滴答声确实是不可以增大或减小的 , 那么如何解决这个问题呢 ? 现在请在 Clock 类中加入下面两个含 空方法体的方法实现 , 再编译运行程序 , 看看会有什么变化。public void increaseVolume()public void decreaseVolume()答(5) 现在请模仿本实验的程序设计出一个自己的接口程序 , 要求先设计一个 moveable 可移动接口 , 然后分别设计 3 个类 , 即汽车 Car 、轮船 Ship 、飞机 Aircraft 来实现该接口 , 最后设计一个应用程序来使用它们。程序代码:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号