English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在这个实例中,我们将学习用Java实现私有构造函数。
要理解此示例,您应该了解以下Java 编程主题:
class Test { //Creazione del costruttore privato private Test() { System.out.println("Questo è un costruttore privato."); } //Creazione di un metodo pubblico statico public static void instanceMethod() { //Creazione di un'istanza della classe Test Test obj = new Test(); } } class Main { public static void main(String[] args) { //Chiamata a instanceMethod() Test.instanceMethod(); } }
risultato di output
Questo è un costruttore privato.
Nell'esempio precedente, abbiamo creato il costruttore privato della classe Test. Pertanto, non possiamo creare un oggetto della classe Test al di fuori della classe Test.
Ecco perché abbiamo creato un metodo pubblico statico chiamato instanceMethod() all'interno della classe Test, che viene utilizzato per creare l'oggetto della classe Test. Nella classe Main, chiamiamo questo metodo utilizzando il nome della classe.
Il modello di progettazione Singleton Java garantisce che una classe abbia solo una istanza. Per questo, utilizziamo il costruttore privato.
class Language { //Creazione di una variabile pubblica statica di tipo classe private static Language language; //Costruttore privato private Language() { System.out.println("costruttore privato interno"); } //Metodo pubblico statico public static Language getInstance() { //Creazione dell'oggetto (se non è stato creato) if(language == null) { language = new Language(); } //Restituisce l'oggetto Singleton return language; } public void display() { System.out.println("implementato il modello Singleton"); } } class Main { public static void main(String[] args) { Language db1; //Chiamata al metodo getInstance db1 = Language.getInstance(); db1.display(); } }
risultato di output
costruttore privato interno implementato il modello Singleton
Nell'esempio precedente, abbiamo creato una classe chiamata Languages. Questa classe contiene:
language - Variabile privata di tipo classe
Language() - Costruttore privato
getInstance() - Metodo pubblico statico di tipo classe
display() - Metodo pubblico
Poiché il costruttore è privato, non possiamo creare l'oggetto Language dall'esterno della classe. Pertanto, abbiamo creato l'oggetto della classe all'interno del metodo getInstance().
Ma abbiamo impostato la condizione per creare solo un oggetto e il metodo restituisce l'oggetto.
Attenzione a questa riga,
db1 = Language.getInstance();
Ecco qui,
db1 è una variabile di tipo Language
Language.getInstance() - Chiamata al metodo getInstance()
Poiché getInstance() restituisce un oggetto della classe Language, la variabile db1 è assegnata all'oggetto restituito.
Infine, abbiamo chiamato il metodo display() utilizzando l'oggetto.