Sobrecarga de constructores en Java:qué es y ejemplos de programas
¿Qué es Constructor en Java?
Constructora es un método especial que se usa para inicializar un objeto recién creado y se llama justo después de que se asigna la memoria para el objeto. Se puede utilizar para inicializar los objetos a los valores deseados o valores predeterminados en el momento de la creación del objeto. No es obligatorio que el codificador escriba un constructor para una clase.
Si no se proporciona un constructor definido por el usuario para una clase, el compilador inicializa las variables miembro a sus valores predeterminados.
- los tipos de datos numéricos se establecen en 0
- los tipos de datos char se establecen en carácter nulo (‘\0’)
- las variables de referencia están configuradas como nulas
En este tutorial, aprenderá-
- Reglas para crear un Constructor
- Sobrecarga de constructores en Java
- Encadenamiento de constructores
Reglas para crear un Constructor Java
- Tiene el mismo nombre como la clase
- No debería devolver un valor ni siquiera void
Ejemplo 1 :Crea tu Primer Constructor en Java
Paso 1) Escriba el siguiente programa constructor en el editor de Java.
class Demo{ int value1; int value2; Demo(){ value1 = 10; value2 = 20; System.out.println("Inside Constructor"); } public void display(){ System.out.println("Value1 === "+value1); System.out.println("Value2 === "+value2); } public static void main(String args[]){ Demo d1 = new Demo(); d1.display(); } }
Paso 2) Guarde, ejecute y compile el programa constructor en Java y observe el resultado.
Salida:
Inside Constructor Value1 === 10 Value2 === 20
Sobrecarga de constructores en Java
La sobrecarga de Java Constructor es una técnica en la que una clase puede tener cualquier número de constructores que difieren en la lista de parámetros. El compilador diferencia estos constructores teniendo en cuenta el número de parámetros en la lista y su tipo.
Ejemplos de constructores válidos para la clase Cuenta son
Account(int a); Account (int a,int b); Account (String a,int b);
Ejemplo 2 :Para comprender la sobrecarga de constructores en Java
Paso 1) Escriba el código en el editor.
class Demo{ int value1; int value2; /*Demo(){ value1 = 10; value2 = 20; System.out.println("Inside 1st Constructor"); }*/ Demo(int a){ value1 = a; System.out.println("Inside 2nd Constructor"); } Demo(int a,int b){ value1 = a; value2 = b; System.out.println("Inside 3rd Constructor"); } public void display(){ System.out.println("Value1 === "+value1); System.out.println("Value2 === "+value2); } public static void main(String args[]){ Demo d1 = new Demo(); Demo d2 = new Demo(30); Demo d3 = new Demo(30,40); d1.display(); d2.display(); d3.display(); } }
Paso 2) Guarde, compile y ejecute el código.
Paso 3) Error =?. Pruebe y depure el error antes de continuar con el siguiente paso de la sobrecarga del constructor de Java
Paso 4) Cada clase tiene un constructor predeterminado en Java. Constructor sobrecargado predeterminado Java para clase Demo es Demostración() . En caso de que no proporcione este constructor, el compilador lo crea e inicializa las variables a los valores predeterminados. Puede elegir anular este constructor predeterminado e inicializar las variables a sus valores deseados como se muestra en el Ejemplo 1.
Pero si especifica un constructor parametrizado como Demo(int a) y quiere usar el constructor predeterminado Java Demo(), es obligatorio que lo especifique.
En otras palabras, en caso de que se anule su constructor de sobrecarga en Java y desee utilizar el constructor predeterminado de Java, es necesario especificarlo.
Paso 5) Descomente la línea # 4-8. Guarde, compile y ejecute el código.
Encadenamiento de constructores
Considere un escenario en el que un niño amplía una clase base. Cada vez que se crea un objeto de la clase secundaria, primero se invoca al constructor de la clase principal. Esto se denomina encadenamiento de constructores.
Ejemplo 3: Para entender el encadenamiento de constructores
Paso 1) Copie el siguiente código en el editor.
class Demo{ int value1; int value2; Demo(){ value1 = 1; value2 = 2; System.out.println("Inside 1st Parent Constructor"); } Demo(int a){ value1 = a; System.out.println("Inside 2nd Parent Constructor"); } public void display(){ System.out.println("Value1 === "+value1); System.out.println("Value2 === "+value2); } public static void main(String args[]){ DemoChild d1 = new DemoChild(); d1.display(); } } class DemoChild extends Demo{ int value3; int value4; DemoChild(){ //super(5); value3 = 3; value4 = 4; System.out.println("Inside the Constructor of Child"); } public void display(){ System.out.println("Value1 === "+value1); System.out.println("Value2 === "+value2); System.out.println("Value1 === "+value3); System.out.println("Value2 === "+value4); } }
Paso 2) Ejecute el Código. Debido al encadenamiento de constructores, cuando se crea el objeto de la clase secundaria DemoChild, primero se invoca al constructor Demo() de la clase principal y luego se crea el constructor DemoChild() de la clase secundaria.
Salida esperada =
Inside 1st Parent Constructor Inside the Constructor of Child Value1 === 1 Value2 === 2 Value1 === 3 Value2 === 4
Paso 3) Puede observar que el constructor de la clase principal Demo está anulado. ¿Qué sucede si desea llamar al constructor invalidado Demo(int a) en lugar del constructor predeterminado Demo() cuando se crea su objeto secundario?
En tales casos, puede utilizar la palabra clave “super” para llamar a los constructores anulados de la clase principal.
Sintaxis:-
super(); --or-- super(parameter list);
Ejemplo: Si su constructor es como Demo(String Name,int a) , especificará super(“Java”,5) . Si se usa, la palabra clave super debe ser la primera línea de código en el constructor de la clase secundaria.
Paso 4) Descomente la línea # 26 y ejecute el código. Observe la salida.
Salida:
Inside 2nd Parent Constructor Inside the Constructor of Child Value1 === 5 Value2 === 0 Value1 === 3 Value2 === 4
Java
- Sobrecarga del constructor de C#
- Programa Java Hola Mundo
- Constructores Java
- Constructor de enumeración de Java
- Método Java String indexOf() con subcadena y ejemplos
- Método Java String compareTo():cómo usarlo con ejemplos
- Variable estática en Java:¿Qué es el bloque estático y el método? [Ejemplo]
- Programa Java para comprobar el número primo
- Programa para imprimir números primos del 1 al 100 en Java
- Cómo convertir Char a String en Java (Ejemplos)
- Número de Armstrong en el programa JAVA utilizando For Loop