【发布时间】:2017-10-24 13:29:37
【问题描述】:
我在一次采访中遇到了一个问题:
假设我有一个 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.
}
我告诉通过添加私有构造函数,但他告诉我们应该有能力在同一个类中创建多个对象。我可以做这个吗?
【问题讨论】:
-
将构造函数设为私有。
-
请注意,编译错误非常优于运行时错误。
-
我也是这么说的,但面试官说,我们应该有能力在同一个类中创建多个对象。
-
@user8579908 那么你的面试官不知道他在说什么。将构造函数设为私有与可以创建的实例数量无关。
-
@user8579908 “我说过要通过添加私有构造函数将类作为单例类” 嗯,这就是混乱的根源:你在这里引入了单例这个词;虽然私有构造函数对于(非枚举)单例来说是必需的,但它们用于其他情况。
标签: java