在子类中,是否可以增加在超类中声明为public的数组的大小。 能不能给我一个例子。
答案 0 :(得分:2)
阵列按设计固定长度。创建数组时,将建立数组的长度。创建后,其长度是固定的你无法改变大小你可以做的是重新分配数组(创建一个最大化它的新实例(例如* 2)),但如果你这样做,你必须复制前一个数组的所有内容。 如果您想使用动态结构,请查看已经处理过数组等重新分配的ArrayList。
答案 1 :(得分:0)
如果它被设置为受保护或公开,则为是:子类将能够编辑它的父项字段。
答案 2 :(得分:0)
答案 3 :(得分:0)
使用ArrayList比使用固定大小的Array更好。
ArrayList<String> ar =new ArrayList<String>();
ar.add("Value");
答案 4 :(得分:0)
在下面的程序中,SuperArrayClass包含在subArrayClass中动态更改的arr。如果你提供的值小于之前的大小,那么它将抛出异常
class SuperArrayClass {
public int arr[];
private int size;
SuperArrayClass(int size) {
this.size = size;
arr = new int[size];
}
public int getSize() {
return size;
}
}
class SubArrayClass extends SuperArrayClass {
SubArrayClass(int size) {
super(size);
}
/**
* @param size
* :provide the new size of the array
* @throws Exception
*/
public void changeSizeTo(int size) throws Exception {
if (getSize()< size) {
int temp[] = new int[size];
for (int i = 0; i < arr.length; i++) {
temp[i] = arr[i];
}
arr = temp;
} else {
throw new Exception("Size provided is less than previous size");
}
}
}