如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第5章接口和包5.1接口5.1.1接口的定义和应用5.1.1接口的定义和应用(续)5.1.1接口的定义和应用(续)//程序5-1interfaceSortable{//定义一个接口intCompare(Sortables);}classSort{//定义一个排序类,仅有一个静态的方法publicstaticvoidSelectSort(Sortablea[]){inti,j,k;Sortabletemp;for(i=0;i<a.length-1;i++){//选择排序k=i;for(j=i+1;j<a.length;j++)if(a[k].Compare(a[j])<0)k=j;temp=a[i];a[i]=a[k];a[k]=temp;}}}classStudentimplementsSortable{//定义一个学生类privateintscore;Student(intx){score=x;}//实现接口Sortable中的方法publicintCompare(Sortables){Studentst=(Student)s;//类型强制转换returnscore-st.score;}publicStringtoString(){return"score="+score;}}大家有疑问的,可以询问和交流classRectangleimplementsSortable{//矩形类也实现了接口privateintlength,width;Rectangle(intx,inty){length=x;width=y;}intarea(){returnlength*width;}publicintCompare(Sortables){//实现接口Rectanglerec=(Rectangle)s;//类型强制转换returnarea()-rec.area();}publicStringtoString(){return"area="+area();}}publicclassinterfaceTest{publicstaticvoidmain(Stringargs[]){Studentstud[]=newStudent[20];inti;for(i=0;i<stud.length;i++)stud[i]=newStudent((int)(Math.random()*100));Sort.SelectSort(stud);//排序for(i=0;i<stud.length;i++)System.out.println(stud[i].toString());RectangleR[]=newRectangle[10];for(i=0;i<R.length;i++)R[i]=newRectangle((int)(Math.random()*10),(int)(Math.random()*10));Sort.SelectSort(R);//排序for(i=0;i<R.length;i++)System.out.println(R[i].toString());}}5.1.1接口的定义和应用(续)5.1.1接口的定义和应用(续)interfaceinter{//接口voidmethodA();}abstractclassDerived1implementsinter{//此处不需要写出methodA()的原型}classDerived2extendsDerived1{publicvoidmethodA(){//实现方法System.out.println("Hi,methodA");}}5.1.2接口和抽象类的异同点5.1.2接口和抽象类的异同点(续)5.2包5.2.1package语句5.2.2import语句5.2.3包应用举例packageDerived;//将Base类存放在Derived包中importBase.*;//需要使用Base包中的类publicclassDerivedextendsBase{Basea=newBase();//为了让testData类能调用该方法,修改为publicpublicvoiddataUse(){//System.out.println(a.friend_data);//不能访问System.out.prin