Re: [問題] Getter and Setter
Java 的 Array 是物件,這點可能是你沒考慮到的問題吧
底下注意,同樣顏色的變數名稱是指向同一個物件
: 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....
從 main 的第三行之後, arrayA 已經指向 foo 裡面 fooArray 所指向的 array 了
因此都是 100 是正常的
最主要的原因就是參考到的東西是一樣的,這種情況通常會用 setValue(i,j,val)
和 getValue(i,j) 這種方式來進行,或者 copy 一個 array 傳回去,不要和
fooArray 指向同一個 array 即可。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.164.208.62
推
07/13 00:08, , 1F
07/13 00:08, 1F
→
07/13 00:09, , 2F
07/13 00:09, 2F
→
07/13 00:11, , 3F
07/13 00:11, 3F
→
07/13 00:12, , 4F
07/13 00:12, 4F
推
07/13 01:05, , 5F
07/13 01:05, 5F
→
07/13 11:35, , 6F
07/13 11:35, 6F
→
07/13 11:38, , 7F
07/13 11:38, 7F
討論串 (同標題文章)