Поддержка синглетонов не на уровне языка, но язык предоставляет достаточно возможностей для их создания без проблем.
Рассмотрим следующий код:
public class Singleton {
private static final Singleton instance = new Singleton();
// Private constructor prevents instantiation from other classes
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
Это пример из Википедии, который объясняет, как можно сделать синглтон.Экземпляр хранится в закрытом поле, конструктор недоступен вне класса, метод возвращает этот единственный экземпляр.
Что касается конструкторов: каждый класс по умолчанию имеет так называемый конструктор по умолчанию , который не принимает аргументов и просто вызывает конструктор суперкласса без аргументов.Если у суперкласса нет доступного конструктора без аргументов, вам придется написать явный конструктор.
Таким образом, класс должен иметь конструктор, но вам не нужно писать его, если у суперкласса естьконструктор без аргументов.