博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Item4:通过私有构造器强化不可实例化的能力
阅读量:6683 次
发布时间:2019-06-25

本文共 447 字,大约阅读时间需要 1 分钟。

有时候只需要包含静态方法和静态field的类,比如各种utility类,虽然这种类是面向过程了,不是面向对象。

工具类不需要被实例化。书上说,如果不强制不可实例化,可能会『误导用户这种类专门是为了继承而设计的』。听着好像没什么道理呢。。。

不管怎样,如何避免类不被实例化和子类化以及子类实例化。这问题里就探讨过了,只要把构造函数写成private就行了。因为所有的构造器都必须显式或者隐式地调用超类superclass的构造器,设成private就没法调用了。

public class MyObject{        private MyObject(){            throw new AssertionError("MyObject cant not have instance");        }}复制代码

这抛出的断言错误是为了防止在类内部不小心调用类内的方法。

转载于:https://juejin.im/post/5a31341851882535c56cea92

你可能感兴趣的文章
python 线程
查看>>
深入浅出桌面虚拟化存储性能的评估
查看>>
druid 数据库密码加密
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
唾面自干
查看>>
ospf v3
查看>>
ATM程序问题集
查看>>
遭遇ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []
查看>>
java Socket 缓冲区与请求的关系
查看>>
Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
查看>>
自定义view的自定义属性的引用
查看>>
基于mysql-mmm实现对mysql replication进行监控和故障迁移
查看>>
对SpringAop的思考之基于jdk的动态代理
查看>>
openstack学习笔记五 多节点部署之 rabbitmq信息中枢与元数据
查看>>
count(*),count(1)和count(主键)的区别
查看>>
揭秘设计模式:适配器模式(Adapter)
查看>>
centos救援模式修改root密码
查看>>
我的友情链接
查看>>
sed学习笔记-2
查看>>