欢迎光临散文网 会员登陆 & 注册

java 核心技术-12版 卷Ⅰ- 4.3.11 final 实例字段

2023-08-05 22:04 作者:CC挑灯夜读_谷  | 我要投稿

原文

可以将实例字段定义为final。这样的字段必须在构造对象时初始化。也就是说,必须确保在每一个构造器执行之后,这个字段的值已经设置,并且以后不能再修改这个字段。例如,可以将Employee 中的name字段声明为final,因为在对象构造之后,这个值不会再改变,即没有setName 方法。

final 修饰符对于类型为基本类型或者不可变类的字段尤其有用。(如果类中的所有方法都不会改变其对象,这样的类就是不可变类。例如,String 类就是不可变的。)

对于可变类,使用final 修饰符可能会造成混乱。例如,考虑以下字段:

private final StringBuilder evaluations;


它在 Employee 构造器中初始化为

evaluations = new StringBuilder();


final 关键字只是表示存储在 evaluations 变量中的对象引用不会再指示另一个不同的StringBuilder 对象。不过这个对象可以更改:




java 核心技术-12版 卷Ⅰ- 4.3.11 final 实例字段的评论 (共 条)

分享到微博请遵守国家法律