java 核心技術-12版 卷Ⅰ- 4.3.11 final 實例字段
原文
可以將實例字段定義為final。這樣的字段必須在構造對象時初始化。也就是說,必須確保在每一個構造器執(zhí)行之后,這個字段的值已經設置,并且以后不能再修改這個字段。例如,可以將Employee 中的name字段聲明為final,因為在對象構造之后,這個值不會再改變,即沒有setName 方法。
final 修飾符對于類型為基本類型或者不可變類的字段尤其有用。(如果類中的所有方法都不會改變其對象,這樣的類就是不可變類。例如,String 類就是不可變的。)
對于可變類,使用final 修飾符可能會造成混亂。例如,考慮以下字段:
private final StringBuilder evaluations;
它在 Employee 構造器中初始化為
evaluations = new StringBuilder();
final 關鍵字只是表示存儲在?evaluations 變量中的對象引用不會再指示另一個不同的StringBuilder 對象。不過這個對象可以更改:
標簽: