可能重复:
What is the use of making constructor private in a class?
何时使用私有构造函数有用?受保护的人怎么样?
答案 0 :(得分:5)
当您想要阻止对象的外部实例化时,它很有用,例如:静态工厂类,单身人士等。
答案 1 :(得分:1)
我可以想到private
的一些用法:
最后一个完全做作的例子:
private MyClass(int a) {
this.a = a}
public MyClass(int a, String B) {
this(a);
this.b = b;
}
public MyClass(int a, double c) {
this(a);
this.b = Double.toString(c);
}
protected
的类似推理,它只是将特权少数扩展到子类和包邻居。
答案 2 :(得分:1)
Singleton模式使用私有构造函数来控制对象的实例化。您可能遇到的另一个用例是当您希望在单元测试中使用特殊构造函数时(如果您在没有依赖注入框架的情况下运行单元测试),那么您将不会将其公开,而是打包保护并声明单元测试相同的包裹。