为了账号安全,请及时绑定邮箱和手机立即绑定

Java中的构造函数可以私有吗?

Java中的构造函数可以私有吗?

FFIVE 2019-12-10 12:08:11
构造函数可以私有吗?私有构造函数有什么用?
查看完整描述

3 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

我希望有人会提到这一点(第二点),但是..私有构造函数有三种用法:

  • 在以下情况下,以防止在对象外部实例化:

    • 单身人士

    • 工厂方法

    • 仅静态方法(实用程序)类

    • 仅常量类

  • 防止超载(扩展)。如果仅创建一个私有构造函数,则没有任何类可以扩展您的类,因为它不能调用super()构造函数。这是的同义词final

  • 重载的构造函数-由于方法和构造函数的重载,有些可能是私有的,有些则是公共的。尤其是在构造函数中使用非公共类的情况下,可以创建一个公共构造函数,该公共构造函数创建该类的实例,然后将其传递给私有构造函数。



查看完整回答
反对 回复 2019-12-11
?
莫回无

TA贡献1865条经验 获得超7个赞

是。


这样,您就可以控制如何实例化该类。如果将构造函数设为私有,然后创建一个可见的构造函数方法来返回该类的实例,则可以执行一些操作,例如限制创建的数量(通常,保证只存在一个实例)或回收实例或其他与建筑相关的任务。


否则new x()永远不会返回null,但使用工厂模式,可以退货null,甚至返回不同的亚型。


您也可以将其用于没有实例成员或属性,而只有静态成员的类,例如在实用程序函数类中。



查看完整回答
反对 回复 2019-12-11
  • 3 回答
  • 0 关注
  • 330 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信