1. 程式人生 > >為什麼java要用get,set方法替代域的直接呼叫?

為什麼java要用get,set方法替代域的直接呼叫?

今天看Think in java,在看到方法呼叫的別名問題時,想到老師說要用get,set方法替代域的直接呼叫,想來還是很有好處的。

如下:

class Letter{

char c;

}

public class PassObject{

static void f(Letter letter){

letter.c='z';

}

public static void mian(String[] args){

Letter l = new Letter();

l.c = 'a';

System.out.println("l.c:" + l.c);

f(l);

System.out.println("l.c" + l.c);

}

}

其輸出的結果為:
lc:a

lc:z

當在進行復制操作時,可能有很多地方都可以修改函式的值,當發現有錯誤的時候,你很難確定它是在什麼地方別修改的,可讀性不太好。

而如果使用get,set方法則複製操作使用set方法,當值發生改變的時候,必然會在set函式中發生,可讀性更好,更安全。