八周实验主要内容指导书.pdf
第八周实验主要内容
接口与实现
实验1评价成绩
1实验目的
本实验的目的是让大家掌握类是如何实现接口的。
2实验要求
体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校一个
班级的某科目的考试情况时,是计算全班同学的平均成绩。Gymnastics类和School类都实现
了ComputerAverage接口,但是实现的方式不同。
3.程序模板
请按照模板要求,将【代码】替换为Java程序代码,并给出程序的运行结果;对于注释语句
中需要大家做出解释的,请做出解释。
参见“2014年10月24日”文件夹下的“实验1”子文件夹下的源程序
4.实验后的练习
对于数组
Doublex[]={5.0,3.0,1.0}来说,执行Gymnastics类中的二重循环的过程中,数组x一步步的
变化如下:
5.03.01.0
3.05.01.0
1.05.03.0
1.03.05.0
请试着给出Doublex[]={115.0,25.076.0,240.0,18.0}时,执行二重循环的过程中,数组x一
步步的变化。
实验2货车的装载量
1.实验目的
本实验的目的是让大家掌握接口回调技术。
2.实验要求
货车要装载一批货物,货物由三种商品组成:电视、计算机、洗衣机。卡车需要计
算出整批货物的重量。
要求有一个ComputeWeight接口,该接口中有一个方法:
publicdoublecomputeWeight()
有三个实现该接口的类:Television、Computer和WashMachine.这三个类通过实现
接口给出自重。
有一个Truck类,该类用ComputeWeight接口类型的数组作为成员(Truck类面向接
口),那么该数组的单元就可以存放Television对象的、Computer对象的或
WashMachine对象的。程序能输出Truck对象所装载的货物的总重量。
3.程序模板
请按照模板要求,将【代码】替换为Java程序代码,并给出程序的运行结果。
参见“2014年10月24日”文件夹下的“实验2”子文件夹下的源程序
4.继续练习
(1)请给出接口回调语句
(2)该类中哪个类是面向接口的类?
(3)请在实验的基础上再编写一个实现ComputerWeight接口的类Refrigerator(冰箱类),
并在主类中计算货车货物的总重量(即150件货物,前30件为Computer,中间20
件为Television,后50件为WashMachine,最后50件为Refrigerator)。
(4)说说在增加Refrigerator类后,哪些类的代码需要做修改,而哪些类的代码无需修改。
实验3小狗的状态(可选)
1.实验目的
本实验的目的是让大家掌握面向接口编程的基本思想和基本的程序框架。
2.实验要求
小狗在不同的环境下可能呈现不同的状态表现,要求用接口封装小狗的状态。具体要求
如下。
(1)编写一个接口DogState,该接口有一个名字为voidshowState()的方法
(2)(这一步很重要,若写起来有难度,也可以根据自己的设计来写)编写Dog类,
该类中有一个DogState接口的变量state。另外,该类有一个show()方法,
在该方法中让接口state回调showState()方法
(
3)编写若干个实现DogState接口的类,负责刻画小狗的各种状态。
(4)编写主类,在主类中测试小狗的各