W tym przykładzie nauczymy się implementować prywatne konstruktory w Javie.
Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:
- Konstruktory Java
- Java Singleton
Przykład 1: Program Java do tworzenia prywatnego konstruktora
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(); ) )
Wynik
To jest prywatny konstruktor.
W powyższym przykładzie utworzyliśmy prywatnego konstruktora Test
klasy. Dlatego nie możemy stworzyć obiektu Test
klasy poza klasą.
Dlatego stworzyliśmy public static
metodę o nazwie instanceMethod()
wewnątrz klasy, która jest używana do tworzenia obiektu klasy Test. Z Main
klasy wywołujemy metodę, używając nazwy klasy.
Przykład 2: Projekt Java Singleton przy użyciu prywatnego konstruktora
Wzorzec projektowy Java Singleton zapewnia, że powinna istnieć tylko jedna instancja klasy. Aby to osiągnąć, używamy prywatnego konstruktora.
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(); ) )
Wynik
Osiągnięto wzorzec singletona Inside Private Constructor
W powyższym przykładzie utworzyliśmy klasę o nazwie Languages. Klasa zawiera:
- język -
private
zmienna typu klasy - Language () -
private
konstruktor - getInstance () -
public static
metoda typu klasy - display () -
public
metoda
Ponieważ konstruktor jest private
, nie możemy tworzyć obiektów języka z klasy zewnętrznej. Dlatego stworzyliśmy obiekt klasy wewnątrz getInstance()
metody.
Warunek jednak ustawiliśmy w taki sposób, że utworzony zostanie tylko jeden obiekt. A metoda zwraca obiekt.
Zwróć uwagę na linię,
db1 = Language.getInstance();
Tutaj,
- db1 jest zmienną typu Język
- Language.getInstance () - wywołuje metodę
getInstance()
Ponieważ getInstance()
zwraca obiekt klasy Language, zmienna db1 jest przypisywana z zwracanym obiektem.
Na koniec wywołaliśmy display()
metodę za pomocą obiektu.