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

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

为什么需要通过私有构造方法强化不可实例化的能力

1、有些类是不需要实例化,如一些工具类:java.lang.Math和java.util.Arrays等。

2、当我们没有在类中定义一个显式的构造方法时,编译器会自动提供一个公共的、无参的缺省构造方法。
3、但是有的工具类对用户来说,不管什么样的构造方法都是一样的,不需要就是不需要,因此我们要让用户不可以去创建这个类的对象。

私有构造的缺点

  • 缺点1:该类不能被子类继承。
  • 缺点2:这么写法让调用者费解,需要添加注释。
// 防止被实例化public class Person{    /**     * 添加注释:     * Suppress default constructor for noninstantiability     */    private Person(){        // 断言错异常,因为不能被访问,所以此段代码非必须,但是可以防止类的内部实例化        // 告诉用户不可以实例化此类        throw new AssertionError();    }}复制代码

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

你可能感兴趣的文章
通用软部件(通用管理信息系统)的研究与生产
查看>>
MFC中模态对话框和非模态对话框的差别
查看>>
数据挖掘算法 1 ID3(python)
查看>>
FPGA机器学习之学习的方向
查看>>
WebBrowser控件使用相关
查看>>
【Android】1.1 开发环境安装和配置
查看>>
站点公司亚马逊砸了10亿也没能做成智能手机,技术是须要沉淀和积累的
查看>>
[数据库]SQL Server 用户NT AUTHORITY\IUSR 登录失败
查看>>
轻松学会多线程(四)——synchronized同步keyword知多少
查看>>
Apache Kylin 部署之不完全指南
查看>>
php中将SimpleXMLElement Object数组转化为普通数组
查看>>
docker学习(7) docker-compose使用示例
查看>>
Android 推断当前Activity是不是最后一个Activity 以及 应用或Activity是否存在
查看>>
【Android】6.3 ProgressDialog
查看>>
设计模式六大原则——迪米特法则(LoD)
查看>>
HtmlAgilityPack 之 HtmlNode类
查看>>
[转]Java Web基础——Action+Service +Dao三层的功能划分
查看>>
ngx.location.capture 只支持相对路径,不能用绝对路径
查看>>
自己在OC考试中的试题
查看>>
向 Git 服务器添加 SSH 公钥
查看>>