




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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所示:10.1程序运行结果 实验程序代码/birthday.javaimport java.util.*; / date,calendar,scannerimport java.text.*; / simpledateformatpublic class birthday public static void main(string args) throws parseexception 版权文档,请勿用做商业用途 string birthday, dayofweek= ;date date;c
5、alendar calendar;scanner scanner = new scanner(system.in);system.out.println(请输入你的生日日期:yyyy-mm-dd);birthday = scanner.next( );/创建一个日期格式对象 simpledateformat dateformat = new simpledateformat(yyyy-mm-dd);版权文档,请勿用做商业用途/获得一个包含当前日期和时间的calendar子类的实例 calendar = calendar.getinstance();int currentyear = calen
6、dar.get(calendar.year);/按输入的birthday产生一个date对象date = dateformat.parse(birthday);/将date对象的值传递给calendar对象calendar.settime(date); int days = calendar.get(calendar.day_of_week); switch( days ) case 1: dayofweek = 星期日;break; case 2: dayofweek = 星期一;break; case 3: dayofweek = 星期二;break; case 4: dayofweek
7、= 星期三;break; case 5: dayofweek = 星期四;break; case 6: dayofweek = 星期五;break; case 7: dayofweek = 星期六;break; system.out.println(你的生日是: + dayofweek);int birthyear = calendar.get(calendar.year);if (birthyear%4=0)&(birthyear%100!=0)|(birthyear%400=0) 版权文档,请勿用做商业用途 system.out.println(birthyear + 年: 是闰年); e
8、lse system.out.println(birthyear + 年: 不是闰年); int age = currentyear-birthyear; system.out.println(你现在是: + age + 岁); 六、 设计性实验1实验要求新建、编译、运行interfacetest.java文件,实验结果如图10.2所示:10.2运行结果图实验程序代码/interfacetest.javaimport java.util.scanner;代码1 /完善此处代码,定义soundable接口,包含increasevolume( ) 、decreasevolume( ) 、stops
9、ound( ) 、 playsound( )四个方法。版权文档,请勿用做商业用途class radio 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(收音机播放广播); cla
10、ss walkman implements soundable 代码2 /完善此处代码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(手机发出来电铃
11、声); class 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; /往声音设备数组中放
12、入能发声的设备 sounddevice0 = new radio( ); sounddevice1 = new walkman( ); sounddevice2 =代码3;/创建手机对象并赋值给sounddevice2 system.out.println(你想听什么? 请输入选择:0-收音机 1-随声听 2-手机);版权文档,请勿用做商业用途 i = scanner.nextint( ); /开始听声音 sportsman.listen(sounddevicei); sounddevicei.increasevolume( ); sounddevicei.stopsound(); /调用st
13、opsound( )方法 2、实验要求(1) 仔细阅读程序清单,完成代码1代码2 。 (2) 为程序增加一个摩托车类motorcycle,该类也实现了transport接口。 程序参考代码 该程序共有5个文件:transport.java,car.java,ship.java,plane.java,interfacetest.java版权文档,请勿用做商业用途/transport.javapublic interface transport public void travel(); public void stop(); /car.javapublic class car implement
14、s transport public void travel() system.out.println(小汽车在公路上行驶); public void stop() system.out.println(小汽车停止行驶); /ship.javapublic class ship implements transport public void travel() system.out.println(轮船在海上航行); public void stop() system.out.println(轮船停止航行); /plane.javapublic class plane implements t
15、ransport public void travel() system.out.println(飞机在空中飞行); public void stop() system.out.println(飞机停止飞行); / interfacetest.javaimport java.util.scanner;class people public void drive(transport s) (); public class interfacetest public static void main(string args) int i; people driver = new people(); scanner scanner = new scanner(system.in); transport transpo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年气管切开患者护理题库及答案
- 2025年护理研究人卫题库及答案
- 组织施工的基本方式与特点教学设计中职专业课-建筑施工组织与管理-建筑类-土木建筑大类
- 七年级地理上册 3.3 降水和降水的分布说课稿4 (新版)新人教版
- 8 Around the world说课稿小学英语Level 6剑桥国际少儿英语(第二版)
- 2025年潮州市法院系统招聘真题
- 2024年河南省文化旅游投资集团有限公司权属企业招聘笔试真题
- 高中基本能力 《非洲你好》说课说课稿
- 宣威事业单位笔试真题2025
- 2024-2025学年学年高二地理 南方地区说课稿
- 2025年四川省高考历史试卷(含答案)
- 2025党考试题及答案
- 乳牙龋齿护理配合过程
- 2025至2030中国轨道交通行业发展分析及投资前景与战略规划报告
- 健康教育和健康促进课件
- 新东方合同协议书
- 2025年北京海淀区九年级中考二模数学试卷试题(含答案详解)
- 油漆粉刷协议书
- ktv营销经理雇佣合同协议
- 2025年全运会知识竞赛试题及答案
- PCS-9613L线路光纤纵差保护装置说明书
评论
0/150
提交评论