У овом примеру ћемо научити да имплементирамо приватне конструкторе у Јави.
Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања Јава:
- Јава конструктори
- Јава Синглетон
Пример 1: Јава програм за стварање приватног конструктора
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()
унутар класе и која се користи за креирање објекта класе Тест. А из Main
класе називамо методу користећи име класе.
Пример 2: Дизајн Јава Синглетон помоћу приватног конструктора
Узорак дизајна Јава Синглетон осигурава да треба да постоји само један примерак класе. Да бисмо то постигли користимо приватни конструктор.
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
конструктор - гетИнстанце () -
public static
метода типа класе - дисплаи () -
public
метода
Будући да је конструктор private
, не можемо да креирамо објекте језика из спољне класе. Стога смо унутар getInstance()
методе креирали објекат класе .
Међутим, поставили смо услов тако да се креира само један објекат. И, метода враћа објекат.
Обратите пажњу на линију,
db1 = Language.getInstance();
Ево,
- дб1 је променљива типа језика
- Лангуаге.гетИнстанце () - позива метод
getInstance()
Будући да getInstance()
враћа објект класе Лангуаге, променљива дб1 се додељује враћеном објекту.
Коначно, позвали смо display()
методу користећи објекат.