初始化后不能修改不可变类对象的属性。例如,String是Java中的不可变类。我们可以按照以下给定规则创建一个不可变的类。将类定为final-类应为final,以便不能扩展。
将每个字段定为最终值-每个字段应定为最终值,以便初始化后无法对其进行修改。
为每个字段创建getter方法。−为每个字段创建一个公共获取方法。字段应该是私有的。
每个字段无设置方法。−请勿为任何字段创建公共设置方法。
创建一个参数化的构造函数-这样的构造函数将用于初始化属性一次。
在下面的示例中,我们创建了一个不变类Employee。
示例public class Tester {
public static void main(String[] args) {
Employee e = new Employee(30, "Robert");
System.out.println("Name: " + e.getName() +", Age: " + e.getAge());
}
}
final class Employee {
final int age;
final String name;
Employee(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
}
输出结果Name: Robert, Age: 30