Tutorial de Java Constructor: sobrecarga y encadenamiento con un ejemplo

¿Qué es un Constructor?

Un constructor es un método especial que se utiliza 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 para el codificador escribir 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 están configurados en 0
  • los tipos de datos char se establecen en carácter nulo (‘\ 0’)
  • las variables de referencia se establecen en nulo

En este tutorial, aprenderá-

Reglas para crear un Constructor Java

  1. Tiene el mismo nombreque la clase
  2. No debería devolver un valor ni siquiera vacío

Ejemplo 1 : Crea tu primer constructor Java

Paso 1) Escriba el siguiente código en su editor.

Paso 2) Guardar, ejecutar y compilar el código. Observe la salida.

Salida:

Constructor interior
Valor1 === 10
Value2 === 20

Sobrecarga del constructor

La sobrecarga de constructor es una técnica en Java en la que una clase puede tener cualquier cantidad de constructores que difieran 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

Ejemplo 2 : comprender la sobrecarga del constructor

Paso 1) Escriba el código en el editor.

Paso 2) Guarde, compile y ejecute el código.

Paso 3) Error =? Pruebe y solucione el error antes de continuar con el siguiente paso.

Paso 4) Cada clase tiene un Constructor predeterminado. Constructor predeterminado para la clase Demo es Demo () . En caso de que no proporcione este constructor, el compilador lo creará por usted e inicializará las variables a los valores predeterminados. Puede optar por 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 desea usar el constructor predeterminado Demo (), es obligatorio que lo especifique.

En otras palabras, en caso de que su Constructor esté anulado, y quiera usar el constructor predeterminado, es necesario especificarlo.

Paso 5) Descomente la línea # 4-8. Guarde, compile y ejecute el código.

Constructor Encadenamiento

Considere un escenario donde una clase base es extendida por un niño. Siempre que se crea un objeto de la clase hija, primero se invoca al constructor de la clase padre. Esto se llama encadenamiento de constructor.

Ejemplo 3: comprender el encadenamiento de constructores

Paso 1) Copie el siguiente código en el editor.

Paso 2) Ejecuta el Código. Debido al encadenamiento del constructor, cuando se crea el objeto de la clase infantil DemoChild, primero se invoca al constructor Demo () de la clase padre y luego se crea el constructor DemoChild () del elemento secundario. Salida esperada =

Paso 3) Puede observar que el constructor de la clase primaria Demo está anulado. ¿Qué ocurre si desea llamar al constructor anulado Demo (int a) en lugar de al constructor predeterminado Demo () cuando se crea su objeto secundario?

En tales casos, puede usar la palabra clave “super” para llamar a los constructores anulados de la clase principal.

Sintaxis:-

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) Descomenta Line # 26 y ejecuta el código. Observe la salida.

Salida:

Inside 2nd Parent Constructor
Dentro del Constructor de Niño
Value1 === 5
Value2 === 0
Value1 === 3
Value2 === 4

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *