要使一个类成为一个不可变类,他必须满足如下条件的要求:
- 所有数据域都是私有的。
- 没有修改器方法。
- 没有一个返回指向 可变数据域的引用的访问器方法。
如果一个类是不可变的,那它的所有数据域都是私有的, 而且没有一个数据域提供公共的set方法。
但是一个类的所有数据都是私有的且没有修改器并不意味着它一定是不可变类。
例如:
public class Student{
private java.util.date dateCreated;
public Student(){
dateCreated = new java.util.Date;
}
public java.util.Date getDateCreated(){
return dateCreated;//返回一个Date 对象。
}
}
通过下面的类改变上面的类
public Test{
public main(){
student = ();//实例化
Date dateCreated = student.getDateCreated();
dateCreated.setTime(2222);
}
}
Test 类将 date 改了。