实验抽象类和接口_第1页
实验抽象类和接口_第2页
实验抽象类和接口_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验10抽象类和接口一、实验名称和性质所属课 程Java语言程序设计实验名 称抽象类和接口实验学 时2实验性 质?验证综合?设计必做/选 做?必做_选做二、实验目的1. 设计并使用抽象类;2. 学习如何定义接口,掌握接口的实现方式,使用实现了接口的 类;3. 理解接口与抽象类的区别。三、实验内容1. 设计和实现一个Soundable接口,该接口具有发声功能,同时 还能调节声音大小。Soundable接口的这些功能将会由3种声音设备 来具体实现,他们分别是收音机Radio、随身听 Walkman和手机Mobilephone。同时需要设计一个应用程序类来使用这些实现了 Soundable接口的声音

2、设备类。在程序运行时,先询问用户想听那种 设备发出声音,然后程序就会按照该设备的工作方式来发出声音(验证性实验)。2. 程序会要求用户以规范的格式输入自己的生日日期, 然后将使 用Date类和Calendar类中的方法计算出用户的生日是星期几,用户 的年龄以及出生的年份是否是闰年。四、实验的软硬件环境要求硬件环境要求:PC计算机;内存512MB上使用的软件名称、版本号以及模块:操作系统:Windows XP或 Windows 7软件:JDK 7.0 ; Eclipse五、知识准备前期要求掌握的知识:了解Java中的抽象类和接口。实验相关理论或原理:1、Java接口和Java抽象类最大的一个区别

3、,就在于 Java抽象 类可以提供某些方法的部分实现, 而Java接口不可以,这大概就 是Java抽象类唯一的优点吧,但这个优点非常有用。如果向一个 抽象类里加入一个新的具体方法时,那么它所有的子类都将得到 了这个新方法,而Java接口做不到这一点,如果向一个 Java接 口里加入一个新方法,所有实现这个接口的类就无法成功通过编 译了,因为你必须让每一个类都再实现这个方法才行,这显然是 Java接口的缺点。2、一个抽象类的实现只能由这个抽象类的子类给出,也就是说, 这个实现处在抽象类所定义出的继承的等级结构中,而由于 Java 语言的单继承性,所以抽象类作为类型定义工具的效能大打折扣。六、验证

4、性实验实验要求通过编写程序Birthday.java ,编辑、运行后输出结果如图10.1 所示:S_L Problems Javadoc 用 DeclarartionS Console 貂terminatedBirthday Java Application C:rnyec 11 pse-&.5Genu!tf请输入你的生日日期:In M g 丘 厢的Eh是;星期一 :LW齐年:杲闰年 祢现在是:"岁10.1程序运行结果实验程序代码/Birthday.java/ Date,Calendar,ScannerthrowsII SimpleDateFormat public clas

5、s Birthday public static void main(String args)ParseExcepti on Stri ng birthday, dayOfWeek二""Date date;Calendar calendar;Scanner scanner = newScanner(System. in );System.out .println("请输入你的生日日期 :yyyy-MM-dd");birthday = scanner.next( );/ 创建一个日期格式对象SimpleDateFormat dateFormat = new

6、 SimpleDateFormat("yyyy-MM-dd");/ 获得一个包含当前日期和时间的 Calendar 子类的实例 calendar = Calendar. getInstance ();int currentYear = calendar.get(Calendar.YEAR);/按输入的birthday 产生一个Date对象date = dateFormat.parse(birthday);/将date对象的值传递给calendar对象 calendar.setTime(date);int days = calendar.get(Calendar.DAY_OF

7、_WE);EKswitch ( days ) case 1: dayOfWeek = " 星期日" break;case 2: dayOfWeek = " 星期一 " break;case 3: dayOfWeek = " 星期二" break;case 4: dayOfWeek = " 星期三" break;case 5: dayOfWeek = " 星期四" break;case 6: dayOfWeek =" 星期五 ”;break;case 7: dayOfWeek =&quo

8、t; 星期六"break;System. out .println(”你的生日是:"+ dayOfWeek);int birth Year = cale ndar.get(Cale ndar.Y EARif(birth Year%4=0)&&(birth Year%100!=0)|(birth Year%400=0)System.out .println(birthYear + "年:是闰年");elseSystem.out .println(birthYear + " 年:不是闰年");int age = curre

9、 ntY ear-birth Year;System.out .println(”你现在是:"+ age + " 岁”);六、设计性实验1. 实验要求新建、编译、运行In terfaceTest.java文件,实验结果如图10.2所示::.Problems t< Jadcc ZeclaraHar 耳普*<. ProD em?在 Jaadoc Deelmration Q LonscIsS<tefrninatfd> InterfaaT«t Java Apclicatio* C;myeclif .<terminated*【nterfaceT

10、ert Java App icaticr Ci'-.rnyeclip確册么晴献麒;皿誠:-随声昕舟机In唏憩听什么7请输入选择;0-收音机:L-随戸听手机b青机播放厂播随声听发出育乐軸收訓音量竜咒随声听音量关诩也音机关囲陡声听* Problems 淞 Jdwadcc Deck ration | Console 歸 x pterminated* lnterfaceTest Java Application C:myeclip » 悔抿昕什么2请输入选择:A收音机-随声听4手机 岸机岌出来电铃声 増大手机音量 关闭手机10.2运行结果图实验程序代码/In terfaceTest.

11、java代码1/完善此处代码,定义Soundable接口,包含increaseVolume( )、decreaseVolume( ) 、stopSound()、playSound()四个方法。class Radio implements Soundable public void increaseVolume( ) System. out.println(”增大收音机音量");public void decreaseVolume( ) System. out.println(”减小收音机音量");public void stopSound( ) System. out.pr

12、intln(”关闭收音机");public void playSound( ) System. out.println(”收音机播放广播");class Walkman implements Soundable 代码2/完善此处代码class Mobilephone implements Soundable public void increaseVolume( ) System. out.println(”增大手机音量”);public void decreaseVolume( ) System. out.println(”减小手机音量");public voi

13、d stopSound( ) System. out.println(”关闭手机");public void playSound( ) System. out.println(”手机发出来电铃声");class People private String n ame;private int age;public void listen(Soundable s) s.playSo un d();public class InterfaceTest public static void main(String args) int i;People sportsma n 二 ne

14、w People();Scanner scanner =newScanner(System. in);Soun dable soun dDevice =n ewSo un dable3;/往声音设备数组中放入能发声的设备soun dDevice0=soun dDevice1=soun dDevice2=soun dDevice2n ewRadio();n ewWalkma n();代码3;创建手机对象并赋值给System. out .println(”你想听什么?请输入选择:0-收音机1-随声听2-手机");i = sca nner.n ext In t();/开始听声音 sport

15、sma ni ste n(soun dDevicei);调用stopSound()方法soun dDevicei.i ncreaseVolume();soun dDevicei.stopSo un d(); /2、实验要求(1) 仔细阅读程序清单,完成代莎代码2。(2) 为程序增加一个摩托车类Motorcycle,该类也实现了Tran sport 接口。程序参考代码该程序共有 5 个文件:Transport.java ,Car.java ,Ship.java , Plane.java , Interfacetest.java/Tra nsport.javapublic in terface T

16、ran sport public void travel(); public void stop();/Car.javapublic class Car impleme nts Tran sport public void travel() (”小汽车在公路上行驶”);public void stop() (”小汽车停止行驶");/Ship.javapublic class Ship impleme nts Tran sport public void travel() (”轮船在海上航行");public void stop() (”轮船停止航行");/Pla

17、ne.javapublic class Pla ne impleme nts Tran sport public void travel() (”飞机在空中飞行");public void stop() (”飞机停止飞行");/ I ntefaceTest.javaclass People public void drive(Tra nsport s) ();public class In terfaceTest public static void main( Stri ng args) int i;People driver = new People();Scanner sca nner =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论