我的一次采访中有一个问题:
假设我有一个classA,我应该只在classA中创建classA的对象,而不是在任何其他类中,例如:
classA{
// some instructions
ClassA a = new ClassA();
}
ClassB{
//Some instructions
ClassA a1 = new ClassA(); // Here I should throw a compilation or runtime error.
}
我通过添加私有构造函数告诉我,但他告诉我们应该能够在同一个类中创建多个对象。我可以做到吗?
答案 0 :(得分:6)
使其构造函数private
:
private classA() {}
这禁止在其他任何地方调用它。
例如
私有构造函数用于Utility classes或Static factory
更新:正如@Arkadiy注意到它不会限制您可以创建的实例数量。
答案 1 :(得分:0)
答案 2 :(得分:0)