GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称 实验六.Java 的接口与实现 课程名称JaVa程序设计与开发 课程号16232204 技术实验地点钟海楼实验日期2015年04019 10 月 26 日 、实验目的(1) 学习掌握Java 中类怎样实现接口、接口回调技术;(2) 学习掌握Java 程序中面向接口的编程思想。
二、实验任务完成实验六指导上实验1、实验2、实验3的实验任务。
三、实验仪器设备和材料安装有J2SE 开发工具的PC 机。
四、实验内容和步骤实验1代码如下:Estimator.javain terface Compu rerAverage{p ublic double average(double x[]);}class Gymn astics imp leme nts Compu rerAverage{ p ublic double average(double x[]){int coun t=x.le ngth;double aver=0,te mp=0;for(i nt i=0;i<co un t;i++){for(i nt j=i;j<co un t;j++){if(x[j]<x[i]){tem p=x[j];x[j]=x[i]; x[i]=temp;}}}for(i nt i=1;ivco un t-1;i++){学院(系)信息学院 专业 计算机科学与技术 班级计科 学生姓名 学号aver=aver+x[i];}if(cou nt>2)aver=aver/(co un t-2);elseaver=0;retur n aver;}}class School impi eme nts Compu rerAverage{p ublic double average(double[] x){int coun t=x.le ngth;double sum=0;for(i nt i=0;i<co un t;i++){sum+=x[i];}retu rn sum/co unt;}}p ublic class Estimator{p ublic static void main( Stri ng[] args){double a[]={9.89,9.88,9.99,9.12,9.69,9.76,8.97};double b[]={89,56,78,90,100,77,56,45,36,79,98};Compu rerAverage compu ter;computer=new Gymn astics();double result=co mpu ter.average(a);System.out .prin tf("% n");System.out .prin tf(" 体操选手最后得分:%5.3f\n",result);computer=new School();result=co mpu ter.average(b);System.out. prin tf(" 班级考试平均分数:%-5.2f\n",result);}}运行结果:-------- JAVAC -----------Estimator.java:27: 错误:School不是抽象的,并且未覆盖CompurerAverage中的抽象方法average(double[])class School impi eme nts Compu rerAverage{A1个错误实验2代码如下:CheckCarWeight.javain terface Compu terWeight{p ublic double compu terWeight();}class Televisi on imp leme nts Comp uterWeight{ p ublic double compu terWeight(){ return 10.0;} }class Compu ter imp leme nts Compu terWeight{ p ublic double compu terWeight(){ return 8.0;}}class WashMach ine imp leme nts Compu terWeight{ p ublic double compu terWeight(){ return 35.5;}}class Truck{Compu terWeight[] goods;double totalWeihts=0;Truck(Co mpu terWeight[] goods){ this.goods=goods;}p ublic void setGoods(Co mpu terWeight[] goods){ this.goods=goods;}public double getTotalWeigths(){ totalWeihts=0;for(i nt i=0;i<goods.le ngth;i++){ totalWeihts+=goods[i].co mpu terWeight();}return totalWeihts;}}public class CheckCarWeight{p ublic static void main( Stri ng[] args){Compu terWeight[] goods=new Compu terWeight[650];for(i nt i=0;i<goods.le ngth;i++){if(i%3==0)goods[i]=new Televisi on();if(i%3==1)goods[i]=new Compu ter();if(i%3==2)goods[i]=new WashMachi ne();}Truck truck=new Truck(goods);System.out .prin tf("\n 货车装载的货物重量:%-8.5f kg\n",truck.getTotalWeigths());goods=new Compu terWeight[68];for(i nt i=0;i<goods.le ngth;i++){if(i%2==0)goods[i]=new Televisi on();elsegoods[i]=new WashMachi ne();货车装载的货物重量:%-8.5f kg\n", truck.getTotalWeigthsO); }}运行结果:练习:class Refrigerrator imp leme nts Compu terWeight{ p ublic double compu terWeight(){return 10.5;}}不需修改Truck 类 实验3代码如下:CheckDogState.javain terface DogState{p ublic void showState();}class SoftlyState imp leme nts DogState{}truck.setGoods(goods);System.out. printf (”p ublic void showState(){System.out.println(" 听主人的命令");}}class MeetE nemyState impi eme nts DogState{p ublic void showState(){System.out.printing 狂叫,并冲向去狠咬敌人");}}class MeetFrie ndState imp leme nts DogState{p ublic void showState(){System.out.println(" 晃动尾巴,表示欢迎");}}class MeetA no therDog imp leme nts DogState{p ublic void showState(){System.out. prin tl n(" 嬉戏");}}class Dog{DogState state;p ublic void show(){state.showState();}p ublic void setState(DogState s){state=s;}}p ublic class CheckDogState{p ublic static void main( Stri ng[] args){Dog yellowDog=new Dog();System.out. prin t("狗在主人面前:"); yellowDog.setState( new SoftlyState());yellowDog.showQ;System.out .prin t("狗遇到敌人:"); yellowDog.setState( new MeetE nemyState());yellowDog.show();System.out .prin t("狗遇到朋友:"); yellowDog.setState( new MeetFrie ndState());yellowDog.show();System.out .prin t("狗遇到同伴:"); yellowDog.setState( new MeetA no therDog());yellowDog.show();练习:CheckWaterState.javain terface WaterState{p ublic void showState();}class ColdState imp leme nts WaterState{p ublic void showState(){System.out. prin tl n(" 固态");}}class Ordin aryState imp leme nts WaterState{ p ublic void showState(){ System.out. prin tl n(" 液态");}}class HotState imp leme nts WaterState{p ublic void showState(){System.out. prin tl n(" 气态");}}class Water{Waterstate state;p ublic void show(){state.showStateO;}p ublic void setState(WaterState s){ state=s; }}public class CheckWaterState{p ublic static void main( Stri ng[] args){Water water= new Water();System.out.print("低于 0° C:"); water.setState( new ColdState()); water.show(); System.out.print("高于 0° C 且低于 100° C:"); water.setState( new Ordi naryState()); water.show();System.out.print(" 高于 100° C "); water.setState( new HotState()); water.show();注:请用A4纸书写,不够另附纸。