English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом примере мы будем изучать, как реализовать частный конструктор в Java.
Чтобы понять этот пример, вы должны знать следующее:Java программированиеТема:
class Test { //Создание частного конструктора private Test() { System.out.println("Это частный конструктор."); } //Создание общественного статического метода public static void instanceMethod() { //Создание экземпляра класса Test Test obj = new Test(); } } class Main { public static void main(String[] args) { //Вызов instanceMethod() Test.instanceMethod(); } }
Результат вывода
Это частный конструктор.
В предыдущем примере мы создали частный конструктор класса Test. Поэтому мы не можем создать объект этого класса вне класса Test.
Вот почему мы создали в классе общедоступный статический метод instanceMethod(), который используется для создания объекта класса Test. В классе Main мы вызываем этот метод через имя класса.
Java-паттерн Singleton обеспечивает наличие только одного экземпляра класса. Для этого мы используем частный конструктор.
class Language { //Создание公共ного статического переменного класса private static Language language; //Частный конструктор private Language() { System.out.println("Внутренний частный конструктор"); } //Общедоступный статический метод public static Language getInstance() { //Создание объекта (если он еще не создан) if(language == null) { language = new Language(); } //Возврат объекта Singleton return language; } public void display() { System.out.println("Реализован паттерн Singleton"); } } class Main { public static void main(String[] args) { Language db1; //Вызов метода getInstance db1 = Language.getInstance(); db1.display(); } }
Результат вывода
Внутренний частный конструктор Реализован паттерн Singleton
В предыдущем примере мы создали класс под названием Languages. Этот класс содержит:
language - классовый частный переменная типа
Language() - private constructor
getInstance() - public static метод класса типа
display() - public метод
Поскольку constructor является частным, мы не можем создавать объект Language снаружи класса. Поэтому мы создаем объект этого класса в методе getInstance().
но мы установили условие, чтобы создать только один объект, и этот метод возвращает объект.
Обратите внимание на эту строку
db1 = Language.getInstance();
здесь
db1 является переменной типа Language
Language.getInstance() - Вызов метода getInstance()
Поскольку getInstance() возвращает объект класса Language, переменной db1 был分配лен возвращенный объект.
В конце концов, мы вызвали метод display() с помощью объекта.