Java programma privātu konstruktoru ieviešanai

Šajā piemērā mēs iemācīsimies Java ieviest privātus konstruktorus.

Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:

  • Java konstruktori
  • Java Singleton

1. piemērs: Java programma privāta konstruktora izveidošanai

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

Rezultāts

 Tas ir privāts konstruktors.

Iepriekš minētajā piemērā mēs esam izveidojuši Testklases privātu konstruktoru . Tādējādi mēs nevaram izveidot Testklases objektu ārpus klases.

Tāpēc mēs esam izveidojuši public staticmetodi, kas nosaukta instanceMethod()klases iekšienē, un ko izmanto, lai izveidotu testa klases objektu. Un no Mainklases mēs saucam metodi, izmantojot klases nosaukumu.

2. piemērs: Java Singleton dizains, izmantojot privātu konstruktoru

Java Singleton dizaina modelis nodrošina, ka klasē jābūt tikai vienam gadījumam. Lai to panāktu, mēs izmantojam privāto konstruktoru.

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

Rezultāts

 Privātā konstruktora iekšpusē ir sasniegts Singletona modelis

Iepriekš minētajā piemērā mēs esam izveidojuši klasi ar nosaukumu Valodas. Nodarbībā ir,

  • valoda - klases tipa privatemainīgais
  • Valoda () - privatekonstruktors
  • getInstance () - public staticklases tipa metode
  • display () - publicmetode

Tā kā konstruktors ir private, mēs nevaram izveidot valodas objektus no ārējās klases. Tādējādi getInstance()metodē mēs esam izveidojuši klases objektu .

Tomēr mēs esam iestatījuši nosacījumu tā, lai tiktu izveidots tikai viens objekts. Metode atgriež objektu.

Ievērojiet līniju,

 db1 = Language.getInstance();

Šeit,

  • db1 ir valodas veida mainīgais
  • Language.getInstance () - izsauc metodigetInstance()

Tā kā getInstance()atgriež valodas valodas objektu, mainīgais db1 tiek piešķirts ar atgriezto objektu.

Visbeidzot, mēs esam saukuši display()metodi, izmantojot objektu.

Interesanti raksti...