Java-programm erakonstruktorite juurutamiseks

Selles näites õpime rakendama Java-s erasektori ehitajaid.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:

  • Java konstruktorid
  • Java Singleton

Näide 1: Java-programm privaatse konstruktori loomiseks

 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äljund

 See on eraehitaja.

Ülaltoodud näites oleme loonud Testklassi privaatse konstruktori . Seega ei saa me luua Testklassi objekti väljaspool klassi.

Seetõttu oleme loonud klassi sees public staticnimelise meetodi, instanceMethod()mida kasutatakse klassi Test objekti loomiseks. Ja Mainklassist lähtudes kutsume meetodit kasutama klassi nime.

Näide 2: Java Singletoni disain, kasutades privaatset konstruktorit

Java Singletoni kujundusmuster tagab, et klassis peaks olema ainult üks eksemplar. Selle saavutamiseks kasutame privaatset konstruktorit.

 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äljund

 Erakonstruktori sees saavutatakse Singletoni muster

Ülaltoodud näites oleme loonud klassi nimega Keeled. Klass sisaldab,

  • keel - klassi tüüpi privatemuutuja
  • Keel () - privatekonstruktor
  • getInstance () - public staticklassi tüüpi meetod
  • kuva () - publicmeetod

Kuna konstruktor on private, siis ei saa me luua keeleobjekte välisklassist. Seega oleme getInstance()meetodi sees loonud klassi objekti .

Kuid oleme tingimuse seadnud nii, et luuakse ainult üks objekt. Ja meetod tagastab objekti.

Pange tähele joont,

 db1 = Language.getInstance();

Siin,

  • db1 on keeletüübi muutuja
  • Language.getInstance () - kutsub meetoditgetInstance()

Kuna getInstance()tagastab keele klassi objekti, määratakse tagastatava objektiga muutuja db1.

Lõpuks oleme kutsunud display()meetodi objekti abil.

Huvitavad Artiklid...