如何定义一个接口
我们采用interface的方法来进行定义
public interface MyList <E>{
//添加元素
public void add(E e);
//获取数组的大小
public int GetSize();
//返回某一个位置的元素
public E element(int index);
}
在这个里面定义了一个泛型的接口,我们在调用的时候可以使用任意类型
MyList ,在尖括号里面是一个类型的声明,这里可以填写任意值。
在这个接口中我们定义了三个函数,分别为添加元素,获取数组大小,返回某一个位置的元素。
实现这个接口中的函数
public class MarrList implements MyList<Object>{
private int Size=0;
private Object list[]= new Object[Size];
//添加元素
public void add(Object e){
Object list1[]=new Object[Size+1];
for(int i=0;i<Size;i++){
list1[i]=list[i];
}
list1[Size]=e;
Size++;
list=list1;
}
//获取数组的大小
public int GetSize(){
return Size;
}
//返回某一个位置的元素
public Object element(int index){
return list[index];
}
}
Object是所有类型的父类。我们现在还不知道实现了什么类型,所有我们声明一个Object类型即可。
主函数实现
public class show {
public static void main(String[] args) {
// TODO Auto-generated method stub
MarrList pair =new MarrList();
pair.add(1);
pair.add(2);
int a=0;
for(int i=0;i<pair.GetSize();i++){
System.out.println((int)pair.element(i));
a+=(int)pair.element(i);
}
System.out.println(a);
}
}
这里我们需要做一个强制转换,这是因为我们调用的是一个Object,而我们传入的是一个整型,所以我们需要强制转换变回原来的类型
结果
输出的结果是1 2 3
所以我们测试可知我们传入的两个值成功的传入了不定长数组中,而且通过强制转换依旧是整型。