Текст упражнения из хорошо известного и базового учебника по программированию на Java:Что здесь за конструктор?
«Иногда нам нужен класс с единственным уникальным экземпляром. Создайте класс Merlin, который имеет один атрибут, theWizard, который является статичным и типа Merlin. Класс имеет только один конструктор и два метода: * Merlin - частный конструктор. Только этот класс может ссылаться на этот constrc- tor; ни один другой класс или программа не может создать экземпляр Merlin * summon -a статический метод, который возвращает Wizard, если он не равен NULL; если theWizard имеет значение null, этот метод создает экземпляр Merlin с использованием частного конструктора и присваивает его Wizard перед его возвратом. * консультируйтесь-не-статический метод, который возвращает строку «Вытащите меч из камня» '
Вы были в состоянии понять, что автор просит в пункте' Merlin -a частный конструктор? Я знаю, что такое конструктор, и что такое частный метод. Но вот какой ответ? Я думал, что-то вроде
public class Merlin {
private static Merlin theWizard;
/*public Merlin()
{
???
}*/
private Merlin()
{
this();
}
public static Merlin summon(Merlin theWizard) {
if (theWizard == null) {
theWizard = new Merlin();
return theWizard;
}
public String consult() {
return "Pull the sword from the stone";
}
}
и конечно JavaBeans говорит «частный Merlin() рекурсивно. Итак, что мне делать? Следующее упражнение связано с вышеупомянутым и может помочь вам понять, что такое ответ; здесь это:
- Создайте программу, которая проверяет класс Merlin, описанный в предыдущем упражнении.
- Используйте метод toString, чтобы убедиться, что был создан уникальный экземпляр.
Большое спасибо за все, что вы будете в состоянии сказать мне.
Ну конструктор только рекурсивная, потому что у вас есть 'это()' в этом ... –