1. 程式人生 > >《Effective Java 中文版 第2版》學習筆記 第4條:通過私有構造器強化不可實例化的能力

《Effective Java 中文版 第2版》學習筆記 第4條:通過私有構造器強化不可實例化的能力

缺省 ive ont sof family 其他 筆記 cnblogs ror

  只有當類不包含顯式的構造器時,編譯器才會生成一個公有的、無參的缺省構造器。只要讓一個類包含私有構造器,這個類就不能被實例化了。示例:

1 // 工具類
2 public class UtilityClass {
3     // 私有構造器
4     private UtilityClass {
5         throw new AssertionError();
6     }
7     
8     // 其他操作...
9 }

  AssertionError避免在類的內部調用構造器,保證該類在任何情況下都不會被實例化。同時,這個類不能被子類化,因為子類構造器無法顯式或隱式地調用該類(父類)的私有構造器。

  參考資料

  《Effective Java 中文版 第2版》 P16  

《Effective Java 中文版 第2版》學習筆記 第4條:通過私有構造器強化不可實例化的能力