构造函数可以私有吗?私有构造函数有什么用?
3 回答
心有法竹
TA贡献1866条经验 获得超5个赞
我希望有人会提到这一点(第二点),但是..私有构造函数有三种用法:
在以下情况下,以防止在对象外部实例化:
单身人士
工厂方法
仅静态方法(实用程序)类
仅常量类
。防止超载(扩展)。如果仅创建一个私有构造函数,则没有任何类可以扩展您的类,因为它不能调用
super()
构造函数。这是的同义词final
重载的构造函数-由于方法和构造函数的重载,有些可能是私有的,有些则是公共的。尤其是在构造函数中使用非公共类的情况下,可以创建一个公共构造函数,该公共构造函数创建该类的实例,然后将其传递给私有构造函数。
莫回无
TA贡献1865条经验 获得超7个赞
是。
这样,您就可以控制如何实例化该类。如果将构造函数设为私有,然后创建一个可见的构造函数方法来返回该类的实例,则可以执行一些操作,例如限制创建的数量(通常,保证只存在一个实例)或回收实例或其他与建筑相关的任务。
否则new x()永远不会返回null,但使用工厂模式,可以退货null,甚至返回不同的亚型。
您也可以将其用于没有实例成员或属性,而只有静态成员的类,例如在实用程序函数类中。
添加回答
举报
0/150
提交
取消