我理解第一个System.out.println()语句,但不理解第二个。我知道这与a = new ArrayHolder(false)行有关,但我不明白为什么该行不会将数组更改为[-1,-2]。而是打印出[0,5]。
public class ArrayChanger{
public static void one(ArrayHolder a){
a.setElement(1,5);
a = new ArrayHolder(false);
}
public static void main(String[] as){
ArrayHolder c = new ArrayHolder(true);
System.out.println(c);
one(c);
System.out.println(c);
}
}
public class ArrayHolder{
private int[] list;
public ArrayHolder(boolean up){
if(up){
list = new int[2];
list[0] = 0;
list[1] = 1;
}
else{
list = new int[2];
list[0] = -1;
list[1] = -2;
}
}
public void setElement(int place, int replacement){
list[place] = replacement;
}
public String toString(){
return list[0] + " " + list[1];
}
}