java实习报告接口与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八周实验报告
接口与实现
实验1 评价成绩
1 实验目的
本实验的目的是让大家掌握类是如何实现接口的。
2 实验要求
体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班同学的平均成绩。Gymnastics类和School类都实现了ComputerAverage接口,但是实现的方式不同。
3. 程序模板
请按照模板要求,将【代码】替换为Java程序代码,并给出程序的运行结果;对于注释语句中需要大家做出解释的,请做出解释。
参见“2014年10月24日”文件夹下的“实验1”子文件夹下的源程序
4. 实验后的练习
对于数组
Double x [] = {, , }来说,执行Gymnastics类中的二重循环的过程中,数组x一步步的变化如下:
请试着给出Double x [] = {, , , }时,执行二重循环的过程中,数组x一步步的变化。
实验2 货车的装载量
1.实验目的
本实验的目的是让大家掌握接口回调技术。
2.实验要求
货车要装载一批货物,货物由三种商品组成:电视、计算机、洗衣机。卡车需要计算出整批货物的重量。
要求有一个ComputeWeight接口,该接口中有一个方法:
public double computeWeight()
有三个实现该接口的类:Television、Computer和WashMachine. 这三个类通过实现接口给出自重。
有一个Truck类,该类用ComputeWeight接口类型的数组作为成员(Truck类面向接口),那么该数组的单元就可以存放Television对象的引用、Computer对象的引用或WashMachine对象的引用。程序能输出Truck对象所装载的货物的总重量。
3.程序模板
请按照模板要求,将【代码】替换为Java程序代码,并给出程序的运行结果。
参见“2014年10月24日”文件夹下的“实验2”子文件夹下的源程序
4.继续练习
(1)请给出接口回调语句
答:totalWeights = totalWeights + goods[i]puteWeight();
(2)该类中哪个类是面向接口的类?
答:Computer, Television, WashMachine
(3)请在实验的基础上再编写一个实现ComputerWeight接口的类Refrigerator(冰箱类),并在主类中计算货车货物的总重量(即150件货物,前30件为Computer,中间20件为Television,后50件为WashMachine,最后50件为Refrigerator)。
(4)说说在增加Refrigerator类后,哪些类的代码需要做修改,而哪些类的代码无需修改。答:只需要修改“CheckCarWeight”类里的代码,其它的都不需要修改。
实验3 小狗的状态(可选)
1.实验目的
本实验的目的是让大家掌握面向接口编程的基本思想和基本的程序框架。
2.实验要求
小狗在不同的环境下可能呈现不同的状态表现,要求用接口封装小狗的状态。具体要求如下。
(1)编写一个接口DogState,该接口有一个名字为void showState()的方法
(2)(这一步很重要,若写起来有难度,也可以根据自己的设计来写)编写Dog类,该类中有一个DogState接口声明的变量state。另外,该类有一个show()方法,
在该方法中让接口state回调showState()方法
(3)编写若干个实现DogState接口的类,负责刻画小狗的各种状态。
(4)编写主类,在主类中测试小狗的各种状态。
3.程序模板:该程序没有提供模板,请同学们自己设计编写程序,方便起见,这里给出几
个实现接口的类名称,即下面的粗体部分
MeetingHost (见到主人) 状态为“开心”
MeetingEnemy(见到敌人)状态为“吠叫,很可能咬敌人”
MeetingFriends (见到朋友) 状态为“摇摇尾巴,表示欢迎”
MeetingDogs(遇到同类) 状态为“上前,嬉闹”
结果: