Самый первый вопрос, который задают в отношении частных конструкторов в интервью:
Можем ли мы иметь частного конструктора в классе?
И иногда ответ, который даеткандидат: нет, у нас не может быть частных конструкторов.
Поэтому я хотел бы сказать, Да, у вас могут быть частные конструкторы в классе.
Это не особенныйвещь, попробуйте думать об этом так,
Личное: Все, что личное, может быть доступно только из класса.
Конструктор: методимя которого совпадает с именем класса, и оно неявно вызывается при создании объекта класса.
или вы можете сказать, что для создания объекта вам необходимо вызвать его конструктор, если конструктор не вызывается, тогда объектне может быть создан.
Это означает, что если у нас есть закрытый конструктор в классе, то его объекты могут быть созданы только внутри класса.Таким образом, вы можете сказать более простыми словами: если конструктор является закрытым, вы не сможете создавать его объекты вне класса.
В чем выгода Эта концепция может быть реализована для достижения объект singleton (это означает, что может быть создан только один объект класса).
См. Следующий код,
class MyClass{
private static MyClass obj = new MyClass();
private MyClass(){
}
public static MyClass getObject(){
return obj;
}
}
class Main{
public static void main(String args[]){
MyClass o = MyClass.getObject();
//The above statement will return you the one and only object of MyClass
//MyClass o = new MyClass();
//Above statement (if compiled) will throw an error that you cannot access the constructor.
}
}
Теперь сложная часть, почему вы ошиблисьКак уже объяснялось в других ответах, вы можете обойти ограничение, используя Reflection.