接口和C++中的抽象类差不多,是只能被实现但是不能在自身实现某种方法的一种结构,下面的程序是一个Interface的简单应用,功能是实现一个数组中几个数据的升序排序和求最大值,实际上排序后最后一个数组元素即为最大值,此处使用一个独立方法只为体现接口的用法,确有欠妥。
interface vir //这是一个接口,用interface关键字声明
{void bigsmall(int a[]); //这里在接口里声明bigsmall和sort两个方法用来被实现它的类继承
void sort(int b[]);
}
class function implements vir //这是一个来实现上面的接口的类,即implements(实现)接口
{public void bigsmall(int c[]) //实现接口的第一个函数,形式必须和接口中相同并且 {int i=0,small=c[0],big=c[0]; //前面要有public关键字
for(i=1;i<c.length;i++)
{if(c[i]<small)small=c[i];
if(c[i]>big)big=c[i];
}
System.out.print("The smallest number is: "+small+'\n');
System.out.print("The biggest number is: "+big+'\n');
}
public void sort(int c[]) //这是实现接口的第二个函数,形式与与上相同,带public关键字
{int j=0,k=0,temp=0; //程序本身及算法没有什么可说之处了
for(j=0;j<4;j++)
{for(k=j+1;k<5;k++)
{if(c[j]>c[k])
{temp=c[j];
c[j]=c[k];
c[k]=temp;
}
}
}
System.out.print("The sorted sequence is:");
for(j=0;j<5;j++)
{System.out.print(" "+c[j]);
}
}
}
public class Jiekou //这是主类
{public static void main(String args[]) //这是主方法
{vir a=new function(); //声明一个接口
int array[]=new int[]{11,71,51,10,21}; //声明一个整形数组待用
System.out.print("The original sequence is:");
for(int i=0;i<5;i++)
{System.out.print(" "+array[i]);
}
System.out.println();
a.bigsmall(array); //此后两句类似于C++中用基类指针指向派生类对象以调用派生类方法
a.sort(array); //而这里是用接口类对象直接调用实现它的类中的方法
}
}
评论