En Java, encadenamiento de constructores es una secuencia de invocación constructores al inicializar un objeto. Se utiliza cuando queremos invocar una serie de constructores, uno tras otro utilizando sólo una instancia. En esta sección, discutiremos encadenamiento de constructores en Java en detalle con ejemplos adecuados. Echemos un vistazo rápido a ¿Qué es un constructor en Java?
Constructor
En Java , un constructor es lo mismo que un método pero la única diferencia es que el constructor tiene el mismo nombre que el nombre de la clase. Se utiliza para crear una instancia de la clase. Se llama automáticamente cuando creamos un objeto de la clase. No tiene tipo de devolución. Recuerde que un constructor no puede ser abstracto , final , sincronizado , y estático . No podemos anular un constructor.
Hay dos tipos de constructores en Java:
- Constructor predeterminado (también conocido como constructor sin argumentos)
- Constructor parametrizado
Encadenamiento de constructores
En la cadena de constructores, se llama a un constructor desde otro constructor en la misma clase, este proceso se conoce como encadenamiento de constructores. Ocurre por herencia. Cuando creamos una instancia de una clase derivada, primero se invocan todos los constructores de la clase heredada (clase base), luego se invoca el constructor de la clase que llama (clase derivada).
Podemos lograr el encadenamiento de constructores de dos maneras:
actor ekta kapoor
Recuerde que cambiar el orden del constructor no afecta la salida.
La necesidad del encadenamiento de constructores
Supongamos que hay cinco tareas a realizar. Hay dos formas de realizar estas tareas: implementar todas las tareas en un solo constructor o crear tareas separadas en un solo constructor.
C#
Al utilizar el mecanismo de encadenamiento de constructores, podemos implementar múltiples tareas en un solo constructor. Entonces, siempre que nos enfrentemos a este tipo de problemas, debemos utilizar el encadenamiento de constructores. Podemos hacer que el programa sea más legible y comprensible utilizando el encadenamiento de constructores.
Reglas de encadenamiento de constructores
- Una expresión que utiliza este La palabra clave debe ser la primera línea del constructor.
- Debe existir al menos un constructor que no utilice este
Constructor llamando desde otro constructor
La llamada del constructor se puede realizar de dos formas:
Nota: En el mismo bloque constructor, no podemos usar this() y super() simultáneamente.
Entendamos estos dos conceptos a través de programas Java.
Ejemplos de encadenamiento de constructores
Llamar al constructor de clase actual
Usamos este() palabra clave si queremos llamar al constructor de la clase actual dentro de la misma clase. El uso de this() es obligatorio porque JVM nunca lo pongas automáticamente como el súper() palabra clave. Tenga en cuenta que this() debe ser la primera línea del constructor. Debe existir al menos un constructor sin esta() palabra clave .
Sintaxis:
this(); or this(parameters list);
Por ejemplo:
this(); this('Javatpoint');
Creemos un programa Java y llamemos al constructor de clase actual.
ConstructorChain.java
public class ConstructorChain { //default constructor ConstructorChain() { this('Javatpoint'); System.out.println('Default constructor called.'); } //parameterized constructor ConstructorChain(String str) { System.out.println('Parameterized constructor called'); } //main method public static void main(String args[]) { //initializes the instance of example class ConstructorChain cc = new ConstructorChain(); } }
Producción:
ordenar en la lista en java
En el ejemplo anterior, hemos creado una instancia de la clase sin pasar ningún parámetro. Primero llama al constructor predeterminado y el constructor predeterminado redirige la llamada al parametrizado debido a esto(). Las declaraciones dentro del constructor parametrizado se ejecutan y regresan al constructor predeterminado. Después de eso, se ejecuta el resto de las declaraciones en el constructor predeterminado y el objeto se inicializa exitosamente. La siguiente es la secuencia de llamada del constructor:
ConstructorChain cc = new ConstructorChain(); -> ConstructorChain() -> ConstructorChain(String str) -> System.out.println() -> ConstructorChain() -> System.out.println()
Llamando al constructor de superclase
A veces, necesitamos llamar al constructor de la superclase (clase principal) desde la clase secundaria (clase derivada); en tales casos, usamos la palabra clave super() en el constructor de la clase derivada. Es opcional escribir super() porque JVM lo coloca automáticamente. Siempre debe escribirse en la primera línea. Obtenemos un error de sintaxis si intentamos llamar a un constructor de superclase en la clase secundaria.
Sintaxis:
super(); or super(Parameter List);
súper(): Llama al constructor predeterminado o sin argumentos de la superclase.
súper (parámetros): Invoca el constructor parametrizado de la superclase.
Recuerde que el constructor de la superclase no se puede heredar en la subclase. Se puede llamar desde el constructor de la subclase utilizando la palabra clave super.
Creemos un programa Java e implementemos el encadenamiento de constructores en una clase heredada.
número a cadena java
ConstructorChaining.java
//parent class or base class class Demo { //base class default constructor Demo() { this(80, 90); System.out.println('Base class default constructor called'); } //base class parameterized constructor Demo(int x, int y) { System.out.println('Base class parameterized constructor called'); } } //derived class or child class class Prototype extends Demo { //derived class default constructor Prototype() { this('Java', 'Python'); System.out.println('Derived class default constructor called'); } //derived class parameterized constructor Prototype(String str1, String str2) { super(); System.out.println('Derived class parameterized constructor called'); } } public class ConstructorChaining { //main method public static void main(String args[]) { //initializes the instance of example class Prototype my_example = new Prototype(); } }
Producción: