English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este ejemplo, aprenderemos a implementar funciones constructoras privadas en Java.
Para entender este ejemplo, debes entender lo siguienteProgramación en JavaTema:
class Test { //Crear constructor privado private Test() { System.out.println("Este es un constructor privado."); } //Crear un método estático público public static void instanceMethod() { //Crear una instancia de la clase Test Test obj = new Test(); } } class Main { public static void main(String[] args) { //Llamar a instanceMethod() Test.instanceMethod(); } }
Resultado de salida
Este es un constructor privado.
En el ejemplo anterior, creamos el constructor privado de la clase Test. Por lo tanto, no podemos crear un objeto de esta clase fuera de la clase Test.
Es por eso que creamos un método público estático llamado instanceMethod() dentro de la clase, que se utiliza para crear un objeto de la clase Test. En la clase Main, llamamos a este método utilizando el nombre de la clase.
El patrón de diseño Singleton de Java asegura que un solo ejemplo de una clase. Para esto, utilizamos el constructor privado.
class Language { //Crear una variable estática pública de tipo de clase private static Language language; //Constructor privado private Language() { System.out.println("Constructor privado interno"); } //Método estático público public static Language getInstance() { //Crear el objeto (si no se ha creado aún) if(language == null) { language = new Language(); } //Devolver el objeto Singleton return language; } public void display() { System.out.println("Implementación del patrón Singleton"); } } class Main { public static void main(String[] args) { Language db1; //Llamar al método getInstance db1= Language.getInstance(); db1.display(); } }
Resultado de salida
Constructor privado interno Implementación del patrón Singleton
En el ejemplo anterior, creamos una clase llamada Languages. Esta clase contiene:
language - Variable privada de tipo de clase
Language() - Constructor privado
getInstance() - Método estático de tipo de clase público
display() - Método público
Dado que el constructor es privado, no podemos crear un objeto Language desde fuera de la clase. Por lo tanto, creamos el objeto de esta clase dentro del método getInstance().
pero configuramos la condición para crear solo un objeto y该方法 devuelve el objeto.
Notar esta línea,
db1 = Language.getInstance();
Aquí,
db1 es una variable de tipo Language
Language.getInstance() - Llamar al método getInstance()
Dado que getInstance() devuelve un objeto de la clase Language, por lo tanto para db1La variable asignó el objeto devuelto.
Finalmente, llamamos al método display() utilizando un objeto.