`

为什么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函数中发生,可读性更好,更安全。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics