《Effective Java 中文版 第2版》学习笔记 第4条:通过私有构造器强化不可实例化的能力

Posted 王景迁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Effective Java 中文版 第2版》学习笔记 第4条:通过私有构造器强化不可实例化的能力相关的知识,希望对你有一定的参考价值。

  只有当类不包含显式的构造器时,编译器才会生成一个公有的、无参的缺省构造器。只要让一个类包含私有构造器,这个类就不能被实例化了。示例:

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条:通过私有构造器强化不可实例化的能力的主要内容,如果未能解决你的问题,请参考以下文章

《effective java》中文第2版 note

Effective Java中文版 第2版pdf

《Effective Java 中文版 第2版》学习笔记 第6条:消除过期的对象引用

Effective Java中文版(第2版) PDF分享下载

《Effective Java 中文版 第2版》学习笔记 第7条:避免使用终结方法

《Effective Java 中文版 第2版》学习笔记 第5条:避免创建不必要的对象