Program Java pro implementaci soukromých konstruktérů

V tomto příkladu se naučíme implementovat soukromé konstruktory v Javě.

Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:

  • Konstruktory Java
  • Java Singleton

Příklad 1: Program Java pro vytvoření soukromého konstruktoru

 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(); ) )

Výstup

 Toto je soukromý konstruktor.

Ve výše uvedeném příkladu jsme vytvořili soukromý konstruktor Testtřídy. Proto nemůžeme vytvořit objekt Testtřídy mimo třídu.

To je důvod, proč jsme vytvořili public staticmetodu pojmenovanou instanceMethod()uvnitř třídy, která se používá k vytvoření objektu třídy Test. A ze Maintřídy voláme metodu pomocí názvu třídy.

Příklad 2: Návrh Java Singleton pomocí soukromého konstruktoru

Návrhový vzor Java Singleton zajišťuje, že by měla existovat pouze jedna instance třídy. K dosažení tohoto cíle používáme soukromý konstruktor.

 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(); ) )

Výstup

 Je dosaženo Singletonového vzoru Inside Private Constructor

Ve výše uvedeném příkladu jsme vytvořili třídu s názvem Jazyky. Třída obsahuje,

  • privateproměnná typu jazyk - třída
  • Language () - privatekonstruktor
  • getInstance () - public staticmetoda typu třídy
  • Zobrazení () - publicmetoda

Protože konstruktor je private, nemůžeme vytvářet objekty Language z vnější třídy. Proto jsme uvnitř getInstance()metody vytvořili objekt třídy .

Podmínku jsme však nastavili tak, aby byl vytvořen pouze jeden objekt. Metoda vrátí objekt.

Všimněte si řádku,

 db1 = Language.getInstance();

Tady,

  • db1 je proměnná typu Language
  • Language.getInstance () - volá metodugetInstance()

Protože getInstance()vrátí objekt třídy Language, je proměnná db1 přiřazena vrácenému objektu.

Nakonec jsme display()metodu nazvali pomocí objektu.

Zajímavé články...