如果一个类是不可变的,那么它的所有数据域必须都是私有的,而且没有对任何一个数据域提供公共的set方法。一个类的所有数据都是私有的且没有修改器,并不意味着它一定是不可变类。例如下面的Student类,它的所有数据域都是私有的,而且也没有set方法,但它不是一个可变的类。
- public class Student {
- private int id;
- private String name;
- private java.util.Date dateCreated;
- public Student(int ssn, String newName) {
- id = ssn;
- name = newName;
- dateCreated = new java.util.Date();
- }
- public int getId() {
- return id;
- }
- public String getName {
- return name;
- }
- public java.util.Date getDateCreated() {
- return dateCreated;
- }
- }
- public class Test {
- public static void main(String[] args) {
- Student student = new Student(123,"John");
- java.util.Date dateCreated = student.getDateCreated();
- dateCreated.setTime(200000);
- }
- }