JAVA第六次实验报告 接口_第1页
JAVA第六次实验报告 接口_第2页
JAVA第六次实验报告 接口_第3页
JAVA第六次实验报告 接口_第4页
JAVA第六次实验报告 接口_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一实验题目体操比赛计算选手成绩的办法是去掉一个最高分和一个最低分再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班学生的平均成绩。Gymnastics类和School类都实现了ComputerAverage接口,但实现方式不同。程序代码interfaceComputerAveragepublicdoubleaverage(doublex);classGymnasticsimplementsComputerAveragepublicdoubleaverage(doublex)intcount=x.length;doubleaver=0,temp=0;for(inti=0;ico

2、unt;i+)for(intj=i;jcount;j+)if(xjxi)temp=xi;xi=xj;xj=temp;for(inti=1;i2)aver=aver/(cou-n2t);elseaver=0;returnaver;classSchoolimplementsComputerAveragepublicdoubleaverage(doublex)intcount=x.length;doubleaver=0;for(inti=0;i0)aver=aver/count;returnaver;publicclassEstimatorpublicstaticvoidmain(Stringarg

3、s)doublea=9.89,9.88,9.99,9.12,9.69,9.76,8.97;doubleb=89,56,78,90,100,77,56,45,36,79,98;ComputerAveragecomputer;computer=newGymnastics();doubleresult=computer.average(a);/com调用iaverage(doublex方)法,将数组a传递给参数xSystem.out.printf(%n);System.out.printf(体操选手最后得分:5.3fn,result);computer=newSchool();result=comp

4、uter.average(b);/computer调用average(doublex口)方法,将数组b传递给参数xSystem.out.printf(班级考试平均分数:%-5.2fn,result);实验结果体操选手取后得分;9.668班级考试平均分数:73.09-ressanykeytocontinue.实验分析一个类可以实现多个接口,类通过使用关键字implements声明自己实现一个或多个接口,如果一个非抽象类实现了某个接口,那么这个类必须重写该接口的所有方法。实验练习School类如果不重写publicdoubleaversge(doublex)方法,程序编译时提示怎样的错误?答:SC

5、hool不是抽象的,并且未覆盖ComputerAverage中的抽象方法。实验二实验题目货车要装载一批货物,货物由三种商品组成:电视、计算机和洗衣机,卡车需要计算出整批货物的重量。实验代码interfaceComputerWeightpublicdoublecomputerWeight();classTelevisionimplementsComputerWeightpublicdoublecomputerWeight()return3.5;classComputerimplementsComputerWeightpublicdoublecomputerWeight()return2.67;c

6、lassWashMachineimplementsComputerWeightpublicdoublecomputerWeight()return13.8;classTruckComputerWeightgoods;doubletotalWeights=0;Truck(ComputerWeightgoods)this.goods=goods;publicvoidsetGoods(ComputerWeightgoods)this.goods=goods;publicdoublegetTotalWeights()totalWeights=0;for(inti=0;igoods.length;i+)

7、totalWeights=totalWeights+puterWeight();returntotalWeights;publicclassCheckCarWeightpublicstaticvoidmain(Stringargs)ComputerWeightgoods=newComputerWeight650;/装载650件货物for(inti=0;igoods.length;i+)/分成三类if(i%3=0)goodsi=newTelevision();elseif(i%3=1)goodsi=newComputer();elseif(i%3=2)goodsi=newWashMachine(

8、);Trucktruck=newTruck(goods);System.out.printf(货车装载的货物重量:-8.5fkgn,truck.getTotalWeights();goods=newComputerWeight68;/68件货物for(inti=0;igoods.length;i+)/分成两类if(i%2=0)goodsi=newTelevision();elsegoodsi=newWashMachine();truck.setGoods(goods);System.out.printf(货车装载的货物重量:%-8.5fkgn,truck.getTotalWeights();实

9、验结果货车装载的货物重量;4319.69000kg货车装裁的货物重量:5SS.20000DTessanykeytocontinue.实验分析接口回调是指:可以把使用某一接口的类型创建的对象引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程成为对象功能的接口回调。接口的方法不一定相同,接口回调可能产生不同的行为。实验练习请在实验基础上再编写一个实现ComputerWeight接口的类,比如Refrigerrator。这样一来,货车装载的货物中就可以有Refrigerrator类型的对象。

10、当系统增加一个实现ComputerWeight接口的类后,Truck类需要进行修改吗?答:代码:classRefrigerratorimplementsComputerWeightpublicdoublecomputerWeight()return12.8;货车装载的货物重量:5314.91000kg货率装载的货物重量:5S3.20000kgPressanykeytocontinue.实验三实验题目小狗在不同环境条件下可能呈现不同的状态表现,要求接口封装小狗的状态。具体要求如下:(1)编写一个接口DogState,该接口有一个名为voidshowState()方法。(2)编写一个Dog类,该类

11、中有一个DogState接口声明的变量state,另外,该类有一个show()方法,在该方法中让接口state回调showState()方法。(3)编写若干个实现DogState接口的类,负责刻画小狗的各种状态。(4)编写主类,在主类中实现测试小狗的各种状态。程序代码interfaceDogStatepublicvoidshowState();classSoftlyStateimplementsDogStatepublicvoidshowState()System.out.println(听主人的命令);classMeetEnemyStateimplementsDogStatepublicvo

12、idshowState()System.out.println(狂叫,并冲过去狠咬敌人);classMeetFriendStateimplementsDogStatepublicvoidshowState()System.out.println(晃动尾巴,表示欢迎);classMeetAnotherdogStateimplementsDogStatepublicvoidshowState()System.out.println(嬉戏);classDogDogStatestate;publicvoidshow()state.showState();publicvoidsetState(DogSt

13、ates)state=s;publicclassCheckDogStatepublicstaticvoidmain(Stringargs)DogyellowDog=newDog();System.out.print(狗在主人面前:);yellowDog.setState(newSoftlyState();yellowDog.show();System.out.print(狗遇到敌人:);yellowDog.setState(newMeetEnemyState();yellowDog.show();System.out.print(狗遇到朋友:);yellowDog.setState(newMe

14、etFriendState();yellowDog.show();System.out.print(狗遇到同类:);yellowDog.setState(newMeetAnotherdogState();yellowDog.show();实验结果句在主人面前;听主人的命令旬遇到敌人:狂叫,并冲过去狠咬敌人句遇到朋友;晃动尾巴,表示欢迎旬遇到同类:嬉戏.essanykeytocontinue.实验分析面向接口编程是指当设计某种重要的类时,不让该类面向具体的类,而是面向接口,即所设计中的重要数据是接口声明的变量,而不是具体声明的对象。5、实验练习用面向接口的思想编写一个程序,模拟水杯中的水在不同温

15、度下可能出现的状态。代码:interfaceWaterStatepublicvoidshowState();classSubzeroStateimplementsWaterStatepublicvoidshowState()System.out.println(结冰);classNormalStateimplementsWaterStatepublicvoidshowState()System.out.println(冰冷或凉快);classHotStateimplementsWaterStatepublicvoidshowState()System.out.println(有热气冒出,温热)

16、;classBoiledStateimplementsWaterStatepublicvoidshowState()System.out.println(沸腾,烫);classWaterWaterStatestate;publicvoidshow()state.showState();publicvoidsetState(WaterStates)state=s;publicclassCheckWaterStatepublicstaticvoidmain(Stringargs)WatercupWater=newWater();System.out.print(水杯中的水在零下时:);cupWater.setState(newSubzeroState();cupWater.show();System.out.print(水杯中的水在常温时:);cupWater.setState(newNormalSt

温馨提示

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

评论

0/150

提交评论