Ebben a példában megtanuljuk megvalósítani a magánépítőket Java-ban.
A példa megértéséhez ismernie kell a következő Java programozási témákat:
- Java konstruktorok
- Java Singleton
1. példa: Java program egy privát konstruktor létrehozásához
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(); ) )
Kimenet
Ez egy magán kivitelező.
A fenti példában létrehoztunk egy saját Test
osztályú konstruktort az osztályból. Ezért nem hozhatunk létre az Test
osztály objektumát az osztályon kívül.
Ezért hoztunk létre egy osztályon belül public static
elnevezett metódust, amelyet instanceMethod()
a Test osztály objektumának létrehozására használunk. Az Main
osztályból pedig az osztály nevét használva hívjuk meg a módszert.
2. példa: Java Singleton tervezés saját konstruktorral
A Java Singleton tervezési minta biztosítja, hogy egy osztálynak csak egy példánya legyen. Ennek eléréséhez a magánépítőt használjuk.
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(); ) )
Kimenet
Belső magánépítőnél Singleton minta érhető el
A fenti példában létrehoztunk egy Nyelvek nevű osztályt. Az osztály tartalmazza,
- nyelv - osztály típusú
private
változó - Nyelv () -
private
konstruktor - getInstance () -
public static
osztálytípusú módszer - display () -
public
módszer
Mivel a konstruktor az private
, a külső osztályból nem hozhatunk létre Nyelv objektumokat. Ezért létrehoztunk egy objektumot az osztályból a getInstance()
módszer belsejében .
A feltételt azonban úgy állítottuk be, hogy csak egy objektum jöjjön létre. És a metódus visszaadja az objektumot.
Figyelje meg a sort,
db1 = Language.getInstance();
Itt,
- A db1 egy Nyelv típusú változó
- Language.getInstance () - meghívja a metódust
getInstance()
Mivel, getInstance()
a Nyelv osztály objektumát adja vissza, a db1 változót hozzárendelik a visszaküldött objektumhoz.
Végül display()
meghívtuk az objektumot használó módszert.