[問題] Getter and Setter
因為封裝的關係,
所以Java應該要將欄位設為private,
使用Getter and Setter供外部存取,
可是我看Java的String、Array、Object都是參照型別,
那這樣用Getter取得的變數,
不就也可以直接影響被封裝的Class?
那我如果想使這些欄位唯讀,
該怎麼做會比較好?
還是我對Java的理解有錯誤?
---------------------------------------------------
對於以上疑惑,我寫了一個測試的程式,卻更讓我疑惑了,
如果程式有寫錯,還請指教。
public static void main(String[] args) {
Foo mFoo = new Foo();
int[][] arrayA = new int[10][10];
arrayA = mFoo.getFooArray();
arrayA[0][0] = 100;
System.out.println(arrayA[0][0]);
mFoo.printFooArray();
}
public class Foo {
private int[][] fooArray;
public Foo() {
super();
fooArray = new int[10][10];
}
public int[][] getFooArray(){
return fooArray;
}
public printFooArray(){
System.out.println(fooArray[0][0]);
}
}
以上印出來卻都是100....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.35.107.99
※ 編輯: gn00742754 來自: 114.35.107.99 (07/12 23:25)
※ 編輯: gn00742754 來自: 114.35.107.99 (07/12 23:26)
推
07/12 23:42, , 1F
07/12 23:42, 1F
→
07/12 23:43, , 2F
07/12 23:43, 2F
→
07/13 01:09, , 3F
07/13 01:09, 3F
→
07/13 13:23, , 4F
07/13 13:23, 4F
→
07/13 13:25, , 5F
07/13 13:25, 5F
→
07/13 13:28, , 6F
07/13 13:28, 6F
→
07/13 13:58, , 7F
07/13 13:58, 7F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 5 篇):