默认情况下Java中的自定义类是否可变?

时间:2014-04-24 16:11:15

标签: oop encapsulation

我一直在阅读有关封装的内容并且在想;如果我创建一个新类,它默认是可变的吗? 如果是这样的话,如果可能的话,我怎样才能使它成为一个不可变的类,而不仅仅是进行防御性复制?

感谢。

1 个答案:

答案 0 :(得分:1)

这取决于你在课堂上的内容。

public class MutableClass {
    private String firstName;

    public MutableClass(String s) {
        firstName = s;
    }

    public String getFirstName() {
        return firstName;
    }

    // this allows mutation...
    public void setFirstName(String s) {
        firstName = s;
    }
}    

public class ImmutableClass {
    private String firstName;

    public MutableClass(String s) {
        firstName = s;
    }

    public String getFirstName() {
        return firstName;
    }
}

这并没有考虑像setAccessible这样的东西,但是我希望这不是你所关心的。

我希望有所帮助。

相关问题