我開始使用Java,我正在學習setter,getters和encapsulation。我有一個非常簡單的程序,兩類:如何在Java中封裝數組
Container
有私家int數組(numArray
)與他的二傳手&吸氣。Main
創建一個Container
對象並在totalArray
方法中使用它。
public class Container {
private int numArray[]= {0,0,0};
public int[] getNumArray() {
return numArray;
}
public void setNumArray(int index, int value){
numArray[index] = value;
}
}
public class Main {
public static void main(String[] args) {
Container conte = new Container();
System.out.println(totalArray(conte.getNumArray()));
conte.getNumArray()[2]++;
System.out.println(totalArray(conte.getNumArray()));
}
private static int totalArray (int v[]){
int total=0;
for (int conta =0; conta<v.length;conta++){
total+=v[conta];
}
return total;
}
}
問題:我可以通過吸氣更改專用int數組,我知道那是因爲getNumArray
返回一個參考numArray
,而不是數組本身。如果我對數組中的單個元素感興趣,我會創建一個具有索引值的getter,但我想要整個數組用於totalArray
方法。
如何防止numArray
被他的班級修改?
'Some'與標準Java庫中的一樣。 – 2010-01-05 15:49:45
@Pete:是的,但不只是。 – glmxndr 2010-01-05 15:58:19