I dette eksemplet vil vi lære å implementere private konstruktører i Java.
For å forstå dette eksemplet, bør du ha kunnskap om følgende Java-programmeringsemner:
- Java-konstruktører
- Java Singleton
Eksempel 1: Java-program for å lage en privat konstruktør
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(); ) )
Produksjon
Dette er en privat konstruktør.
I eksemplet ovenfor har vi opprettet en privat konstruktør av Test
klassen. Derfor kan vi ikke lage et objekt fra Test
klassen utenfor klassen.
Dette er grunnen til at vi har laget en public static
metode som er oppkalt instanceMethod()
inne i klassen som brukes til å lage et objekt av testklassen. Og fra Main
klassen kaller vi metoden ved hjelp av klassenavnet.
Eksempel 2: Java Singleton-design ved hjelp av en privat konstruktør
Java Singleton designmønsteret sørger for at det bare skal være en forekomst av en klasse. For å oppnå dette bruker vi den private konstruktøren.
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(); ) )
Produksjon
Inside Private Constructor Singleton Pattern oppnås
I eksemplet ovenfor har vi opprettet en klasse som heter Languages. Klassen inneholder,
- språk - klasse type
private
variabel - Språk () -
private
konstruktør - getInstance () -
public static
klassetypemetode - display () -
public
metode
Siden konstruktøren er det private
, kan vi ikke lage objekter av språk fra den ytre klassen. Derfor har vi laget et objekt av klassen inne i getInstance()
metoden.
Vi har imidlertid satt tilstanden på en slik måte at bare ett objekt blir opprettet. Og metoden returnerer objektet.
Legg merke til linjen,
db1 = Language.getInstance();
Her,
- db1 er en variabel av språktypen
- Language.getInstance () - kaller metoden
getInstance()
Siden, getInstance()
returnerer objektet til språkklassen, tildeles db1-variabelen det returnerte objektet.
Til slutt har vi kalt display()
metoden ved hjelp av objektet.