public class lntArray {
int[] data; //创建一个数组
int size; //设置变量记录传递的次数
public lntArray(){
this(5); //设置默认数组长度为5
}
public lntArray(int length){ //接收传递参数
data = new int[length]; //将参数赋值给data的数组长度
}
void add(int i){ //接收传递过来的参数
if(size>=data.length){ //当已传递数据长度大于或者等于数组长度时判断成立
int[] arr = new int[size+20]; //重新创建一个长度为size+20的数组
//将原来数组data上的数据从索引0开始拷贝到arr数组索引0开始的位置
System.arraycopy(data, 0, arr, 0, size);
data = arr; //将新数组在堆中的地址重新赋给变量data
}
data[size] = i; //int类默认值是0当索引使用
size++; //记录接收变量的次数
}
int size(){ //创建普通方法
return size; //返回数据的长度
}
@Override
public String toString(){ //覆写toString方法
int[] arr = new int[size]; //创建一个长度为size的数组
System.arraycopy(data, 0, arr, 0, size);//将data数组从索引0开始的值复制到arr数组从索引0开始的位置,长度为size
return Arrays.toString(arr); //返回arr数组
}
}
测试-----------------------------------------------------------------------------------------------------
public class Test {
public static void main(String[] args) {
lntArray a = new lntArray(); //创建对象
//传递参数
a.add(88);
a.add(99);
a.add(77);
//打印数组长度
int size = a.size;
System.out.println("a数组长度为---"+size);
//打印数组
System.out.println("a="+a);
}
}