java第六次实验报告接口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、实验题目体操比赛计算选手成绩的办法是去掉一个最高分和一个最低分再计算平均分,察
一个班级的某科目的考试情况时,是计算全班学生的平均成绩。
School 类都实现了ComputerAverage 接口,但实现方式不同。
2、程序代码
interface ComputerAverage{
public double average(double x[]);
}
class Gymnastics implements ComputerAverage{
public double average(double x[]){
int count=;
double aver=0,temp=0;
for(int i=0;i for(int j=i;j if(x[j] temp=x[i]; x[i]=x[j]; x[j]=temp; } } } for(int i=1;i aver=aver+x[i]; } if(count>2) aver=aver/(count-2); else aver=0; return aver; } } class School implements ComputerAverage{ public double average(double x[]){ int count=; double aver=0; for(int i=0;i aver=aver+x[i]; } if(count>0) aver=aver/count; return aver; public class Estimator { public static void main(String args[]){ double a[]={,,,,,,}; double b[]={89,56,78,90,100,77,56,45,36,79,98}; ComputerAverage computer; computer=new Gymnastics(); 而学校考Gymnastics 类和 double result=(a);//computer 调用average(double x[]) 方法,将数组 a 传递给参数x "%n"); " 体操选手最后得分:%\n",result); computer=new School(); result=(b);//computer 调用average(double x[]) 方法,将数组 b 传递给参数x " 班级考试平均分数:%\n",result); } } 3、实验结果 4、实验分析一个类可以实现多个接口,类通过使用关键字implements 声明自己实现一个或多 个接口,如果一个非抽象类实现了某个接口,那么这个类必须重写该接口的所有方法。 5、实验练习 School 类如果不重写public double aversge(double x[]) 方法,程序编译时提示怎样的错误?答:SChool 不是抽象的,并且未覆盖ComputerAverage 中的抽象方法。 实验二 1、实验题目货车要装载一批货物,货物由三种商品组成:电视、计算机和洗衣机,卡车需要 计算出整批货物的重量。 2、实验代码interface ComputerWeight{ public double computerWeight(); } class Television implements ComputerWeight{ public double computerWeight(){ return ; } } class Computer implements ComputerWeight{ public double computerWeight(){ return ; } } class WashMachine implements ComputerWeight{ public double computerWeight(){ return ; } } class Truck{ ComputerWeight []goods; double totalWeights=0; Truck(ComputerWeight[] goods){ = goods; } public void setGoods(ComputerWeight[] goods){ = goods; } public double getTotalWeights(){ totalWeights=0; for(int i=0;i<;i++){ totalWeights = totalWeights + goods[i]puterWeight(); } return totalWeights; } } public class CheckCarWeight{ public static void main(String args[]){ ComputerWeight []goods = new ComputerWeight[650]; // for(int 装载650 件货物i=0;i<;i++){ // 分成三类if(i%3 == 0) goods[i]=new Television(); else if(i%3 == 1) goods[i]=new Computer(); else if(i%3 == 2) goods[i]=new WashMachine(); } Truck truck =new Truck(goods); "\n 货车装载的货物重量:% kg\n",()); goods = new ComputerWeight[68]; //68 件货物 for(int i=0;i<;i++){ // 分成两类 if(i%2 == 0) goods[i]=new Television(); else goods[i]=new WashMachine(); } (goods); " 货车装载的货物重量:% kg\n",()); } } 3、实验结果 4、实验分析接口回调是指:可以把使用某一接口的类型创建的对象引用赋给该接口声明的接 口变量中,那么该接口变量就可以调用被实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程成为对象功能的接口回调。接口的方法不一定相同,接口回调可能产生不同的行为。 5、实验练习 请在实验基础上再编写一个实现ComputerWeight 接口的类,比如Refrigerrator 这样一来,货车装载的货物中就可以有Refrigerrator 类型的对象。当系统增加一个实现