做网站推广怎么做,怎么查网站有没有做301,什么是网络设计方案,济南免费网站制作实验项目二 抽象类、接口的定义与使用
Tips#xff1a;分享是快乐的源泉#x1f4a7;#xff0c;在我的博客里#xff0c;不仅有知识的海洋#x1f30a;#xff0c;还有满满的正能量加持#x1f4aa;#xff0c;快来和我一起分享这份快乐吧#x1f60a;…实验项目二 抽象类、接口的定义与使用
Tips分享是快乐的源泉在我的博客里不仅有知识的海洋还有满满的正能量加持快来和我一起分享这份快乐吧
喜欢我的博客的话记得点个红心❤️和小关小注哦您的支持是我创作的动力
一、实验目的
(1) 学会使用类的静态方法 ;
(2) 学习如何定义接口 ;
(3) 掌握接口的实现及其使用方式;
(4) 理解接口与抽象类的区别。
二、实验内容
定义传播媒体类Media为抽象类其属性包括id即书号或刊号title即名称。方法包括
抽象方法showInformation(),显示当前对象的属性值
静态方法showType(),显示当前对象的类型如“Book”或“Newspaper”。
类Book、类Newspaper都是Media的子类Book类特有的属性包括press即出版社authors即作者。
在测试类中创建Book和Newspaper的对象显示每个对象的类型并显示每个对象的信息。 2. 设计和实现一个 Soundable 接口 , 该接口具有发声功能 , 同时还能够调节声音大小。 Soundable 接口的这些功能将会由 3 种声音设备来具体实现 , 它们分别是收音机 Radio 、随身昕 Walkman 和手机Mobilephone 。最后还要设计一个应用程序类来使用这些实现了 Soundable 接口的声音设备类。程序运行时 , 先询问用户想听哪种设备 , 然后程序就会按照该设备的工作方式来发出声音。
三、实验原理
1、类的静态方法
2、抽象类与接口的定义与使用。 四、实验环境
电脑主机酷睿i5、内存4G以上操作系统Windows 7以上开发工具eclipse。
五、实验步骤
1、
2、
3、 六、实验结果 七、实验分析
1、定义传播媒体类Media为抽象类其属性包括id即书号或刊号title即名称。方法包括
抽象方法showInformation(),显示当前对象的属性值
静态方法showType(),显示当前对象的类型如“Book”或“Newspaper”。
类Book、类Newspaper都是Media的子类Book类特有的属性包括press即出版社authors即作者。
在测试类中创建Book和Newspaper的对象显示每个对象的类型并显示每个对象的信息。
第1题解答如下
创建包并分类完毕Media为抽象类Book与Newspaper为子类test03为测试类 抽象类Media代码 子类Book代码 子类Newspaper代码 测试类test03代码 测试结果显示 2、设计和实现一个 Soundable 接口 , 该接口具有发声功能 , 同时还能够调节声音大小。 Soundable 接口的这些功能将会由 3 种声音设备来具体实现 , 它们分别是收音机 Radio 、随身昕 Walkman 和手机Mobilephone 。最后还要设计一个应用程序类来使用这些实现了 Soundable 接口的声音设备类。程序运行时 , 先询问用户想听哪种设备 , 然后程序就会按照该设备的工作方式来发出声音。
第2题解答如下
创建包并分类完毕Soundable为接口RadioWalkman与Mobilephone为实现类People为普通类InterfaceTest为测试类 接口Soundable的代码 实现类Radio代码 实现类Walkman代码 实现类Mobilephone代码 普通类People代码 测试类InterfaceTest代码 运行结果显示 思考
请问在 InterfaceTest 类中 ,SoundDevice[] 数组是什么类型的 , 该数组为什么能存放 3 种不同的对象 Radio、Walkman 和 Mobilephone 呢 ?
答SoundDevice[] 数组是接口类型因为三个对象都实现了这个接口因而可以调用实现了接口的实现类。
(2) 在程序中Soundable 是一个接口 , 那么该接口是否可以被实例化呢 ? 请在InterfaceTest 类的 main() 方法中加入以下语句试验一下 , 并分析结果。
Soundable Soundnew Soundable(),
答不能被实例化因为Soundable不是一个类只是一个接口。
(3) 现在假定要为程序增加一个闹钟类 Clock, 该类也实现 Soundable 接口 , 能够发出滴答声 , 请将以下的 Clock 类加入到 InterfaceTest.java 程序中 , 并在 InterfaceTest 类的 main() 方法中加入 SoundDevice[3] new Clock(); 语句。
class Clock implements Soundable{
public void Stopsound(){
System.out.println( 关闭闹钟 );
}
public void Playsound(){
system.out.println( 闹钟发出滴答声 ); }
}
修改之后 , 重新编译 InterfaceTest.java 并运行它 , 观察结果。
答报错了普通类需要实现所有接口的方法。
(4) 在第 (3) 小题中由于新加入的 Clock 类仅仅实现了 Soundable 接口的stopsound() 和 playsound() 方法 , 而 increaseVolume() 和 decreaseVolume() 方法没有实现 , 因此它实质上是一个抽象类 , 而抽象类是不能实例化的 , 所以导致编译错误。但是按照常理 , 闹钟的滴答声确实是不可以增大或减小的 , 那么如何解决这个问题呢 ? 现在请在 Clock 类中加入下面两个含 {} 空方法体的方法实现 , 再编译运行程序 , 看看会有什么变化。 public void increaseVolume(){}
public void decreaseVolume(){}
答正确了不会报错。 现在请模仿本实验的程序设计出一个自己的接口程序 , 要求先设计一个 moveable 可移动接口 , 然后分别设计 3 个类 , 即汽车 Car 、轮船 Ship 、飞机 Aircraft 来实现该接口 , 最后设计一个应用程序来使用它们。
解答如下
1.创建包并分类完毕Moveable为接口CarShip与Aircraft为实现类People为普通类Test为测试类 2.接口Moveable的代码 3.实现类Car代码 4.实现类Ship代码 5.实现类Aircraft代码 6.普通类People代码 7.测试类Test代码 8.运行结果显示 点评 接口的特点在于只定义能做什么 , 而不定义怎么去做。在本实验中 , 收音机 Radio, 随身听 Walkman 和手机 Mobilephone 分别以自己的方式实现了 Soundable 接口 , 当接口成为 Listen(Soundable s) 方法的形参时 , 任何实现了 Soundable 接口的对象都能成为它的实参 , 如果不用接口作形参 , 那就必须写 3 个不同的方法 , 即 listenRadio(Radio r), listenWalkman(Walkman w)
listenMobilephone(Mobilephone m)。