不可变(Immutable)类不能有( )
public数据属性
private数据属性
公共构造函数
无参数构造函数
static数据属性
一个不可变类,需要遵循下面四条基本原则:
1)类中所有的成员变量被private所修饰。
2)类中没有写或者修改成员变量的方法,例如setter。只提供构造方法,一次生成,永不改变。
3)确保类中所有的方法不会被子类覆盖,可以通过把类定义为final或者把类中的方法定义为final来达到这个目的。
4)如果一个类成员不是不可变量,那么在成员初始化时,克隆一下该成员变量,并且如果有getter方法可以获得该成员变量,那么在getter方法中也应该返回一个克隆对象,以保证类是不可变的。
1)类中所有的成员变量被private所修饰。
2)类中没有写或者修改成员变量的方法,例如setter。只提供构造方法,一次生成,永不改变。
3)确保类中所有的方法不会被子类覆盖,可以通过把类定义为final或者把类中的方法定义为final来达到这个目的。
4)如果一个类成员不是不可变量,那么在成员初始化时,克隆一下该成员变量,并且如果有getter方法可以获得该成员变量,那么在getter方法中也应该返回一个克隆对象,以保证类是不可变的。