В этом примере мы научимся реализовывать частные конструкторы в Java.
Чтобы понять этот пример, вы должны знать следующие темы программирования Java:
- Конструкторы Java
- Java Singleton
Пример 1: программа на Java для создания частного конструктора
class Test ( // create private constructor private Test () ( System.out.println("This is a private constructor."); ) // create a public static method public static void instanceMethod() ( // create an instance of Test class Test obj = new Test(); ) ) class Main ( public static void main(String() args) ( // call the instanceMethod() Test.instanceMethod(); ) )
Вывод
Это частный конструктор.
В приведенном выше примере мы создали частный конструктор Test
класса. Следовательно, мы не можем создать объект Test
класса вне класса.
Вот почему мы создали public static
метод с именем instanceMethod()
внутри класса, который используется для создания объекта класса Test. И из Main
класса мы вызываем метод, используя имя класса.
Пример 2: разработка Java Singleton с использованием частного конструктора
Шаблон проектирования Java Singleton гарантирует, что должен быть только один экземпляр класса. Для этого мы используем частный конструктор.
class Language ( // create a public static variable of class type private static Language language; // private constructor private Language() ( System.out.println("Inside Private Constructor"); ) // public static method public static Language getInstance() ( // create object if it's not already created if(language == null) ( language = new Language(); ) // returns the singleton object return language; ) public void display() ( System.out.println("Singleton Pattern is achieved"); ) ) class Main ( public static void main(String() args) ( Language db1; // call the getInstance method db1= Language.getInstance(); db1.display(); ) )
Вывод
Внутри частного конструктора достигается шаблон Singleton
В приведенном выше примере мы создали класс с именем Languages. Класс содержит,
- language -
private
переменная типа класса - Language () -
private
конструктор - getInstance () -
public static
метод типа класса - display () -
public
метод
Поскольку конструктор есть private
, мы не можем создавать объекты Language из внешнего класса. Следовательно, мы создали объект класса внутри getInstance()
метода.
Однако мы установили условие таким образом, что создается только один объект. И метод возвращает объект.
Обратите внимание на линию,
db1 = Language.getInstance();
Вот,
- db1 - это переменная типа Language
- Language.getInstance () - вызывает метод
getInstance()
Поскольку, getInstance()
возвращает объект класса Language, переменной db1 присваивается возвращаемый объект.
Наконец, мы вызвали display()
метод, использующий объект.