第四条:通过私有构造器强化不可实例化的能力
2015-04-16 17:08
267 查看
有时候我们可能需要编写只包含静态方法和静态域的类,例如某些工具类。
如java.lang.Math 或者 java.util.Arrays
这样的工具类不希望被实例化,因为实例对于它们没有任何意义。
如果不手写提供一个构造器,编译器会为这个类提供一个public的构造器,所以我们可以通过手写提供一个私有化的
构造器,从而来阻止这样的工具类来产生实例。
在这个私有的构造器里面,我们可以抛出一个AssertionException异常,从而进一步阻止它在这个类内被调用。
因为提供了私有化的构造器,而且没有提供其他的构造器,这样的类就不能被子类化了,因为子类总会显示或者隐式的调用父类构造器一次。
因为子类没有可以访问的父类构造器了。
如java.lang.Math 或者 java.util.Arrays
这样的工具类不希望被实例化,因为实例对于它们没有任何意义。
如果不手写提供一个构造器,编译器会为这个类提供一个public的构造器,所以我们可以通过手写提供一个私有化的
构造器,从而来阻止这样的工具类来产生实例。
在这个私有的构造器里面,我们可以抛出一个AssertionException异常,从而进一步阻止它在这个类内被调用。
因为提供了私有化的构造器,而且没有提供其他的构造器,这样的类就不能被子类化了,因为子类总会显示或者隐式的调用父类构造器一次。
因为子类没有可以访问的父类构造器了。
相关文章推荐
- 第四条建议:通过私有构造器强化不可实例化的能力
- Effective Java第四条:通过私有构造器强化不可实例化的能力
- Effective java第四条:通过私有构造器强化不可实例化的能力
- 第四条:通过私有构造器强化不可实例化的能力
- 第四条:通过私有构造器强化不可实例化的能力
- Effective Java -- 通过私有构造器强化不可实例化的能力
- Effective Jave 创建和销毁对象 4.通过私有构造器强化不可实例化的能力
- Effective Java 2.4—— 通过私有构造器强化不可实例化能力
- 通过私有构造器强化不可实例化的能力
- Effective Java 中文版第二版的读书心得(四)通过私有构造器强化不可实例化的能力
- NO2 通过私有构造器强化不可实例化的能力
- 《Effective java》读书记录-第4条-通过私有构造器强化不可实例化的能力
- 创建和销毁对象 - 通过私有构造器强化不可实例化的能力
- Effective Java (4) - 通过私有构造器强化不可实例化的能力
- 第4条:通过私有构造器强化不可实例化的能力
- Android 编码规范:(四)通过私有构造器强化不可实例化的能力
- EffectiveJava读书笔记- 第4条:通过私有构造器强化不可实例化的能力
- 第4条:通过私有构造器来强化不可实例化能力
- Android 编码规范:(四)通过私有构造器强化不可实例化的能力
- Item 4 ----通过私有构造器强化不可实例化的能力