У цьому прикладі ми навчимося реалізовувати приватні конструктори в Java.
Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування Java:
- Конструктори Java
- Java Сінглтон
Приклад 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(); ) )
Вихідні дані
Внутрішній приватний конструктор досягається одиночний шаблон
У наведеному вище прикладі ми створили клас «Мови». Клас містить,
- мова -
private
змінна типу класу - Мова () -
private
конструктор - getInstance () -
public static
метод типу класу - display () -
public
метод
Оскільки конструктор є private
, ми не можемо створювати об'єкти Language із зовнішнього класу. Отже, ми створили об’єкт класу всередині getInstance()
методу.
Однак ми встановили умову таким чином, що створюється лише один об’єкт. І метод повертає об’єкт.
Зверніть увагу на рядок,
db1 = Language.getInstance();
Ось,
- db1 - змінна типу мови
- Language.getInstance () - викликає метод
getInstance()
Оскільки, getInstance()
повертає об'єкт класу Language, змінній db1 призначається повернутий об'єкт.
Нарешті, ми викликали display()
метод, використовуючи об'єкт.