logo

Constructores en Java

  1. Tipos de constructores
    1. Constructor predeterminado
    2. Constructor parametrizado
  2. Sobrecarga de constructores
  3. ¿El constructor devuelve algún valor?
  4. Copiar los valores de un objeto en otro.
  5. ¿El constructor realiza otras tareas en lugar de la inicialización?

En Java , un constructor es un bloque de códigos similar al método. Se llama cuando una instancia del clase es creado. En el momento de llamar al constructor, se asigna memoria para el objeto en la memoria.

Es un tipo especial de método que se utiliza para inicializar el objeto.

Cada vez que se crea un objeto usando la palabra clave new(), se llama al menos a un constructor.

Llama a un constructor predeterminado si no hay ningún constructor disponible en la clase. En tal caso, el compilador de Java proporciona un constructor predeterminado de forma predeterminada.

Hay dos tipos de constructores en Java: constructor sin argumentos y constructor parametrizado.

Nota: Se llama constructor porque construye los valores en el momento de la creación del objeto. No es necesario escribir un constructor para una clase. Esto se debe a que el compilador de Java crea un constructor predeterminado si su clase no tiene ninguno.

Reglas para crear un constructor Java.

Hay dos reglas definidas para el constructor.

eliminación de un árbol de búsqueda binario
  1. El nombre del constructor debe ser el mismo que el nombre de su clase.
  2. Un constructor no debe tener ningún tipo de retorno explícito
  3. Un constructor de Java no puede ser abstracto, estático, final y sincronizado.

Nota: Podemos usar modificadores de acceso al declarar un constructor. Controla la creación de objetos. En otras palabras, podemos tener un constructor privado, protegido, público o predeterminado en Java.

Tipos de constructores de Java

Hay dos tipos de constructores en Java:

  1. Constructor predeterminado (constructor sin argumentos)
  2. Constructor parametrizado
Constructores de Java

Constructor predeterminado de Java

Un constructor se llama 'Constructor predeterminado' cuando no tiene ningún parámetro.

Sintaxis del constructor predeterminado:

 (){} 

Ejemplo de constructor predeterminado

En este ejemplo, estamos creando el constructor sin argumentos en la clase Bike. Será invocado en el momento de la creación del objeto.
 //Java Program to create and call a default constructor class Bike1{ //creating a default constructor Bike1(){System.out.println('Bike is created');} //main method public static void main(String args[]){ //calling a default constructor Bike1 b=new Bike1(); } } 
Pruébalo ahora

Producción:

 Bike is created 

Regla: si no hay ningún constructor en una clase, el compilador crea automáticamente un constructor predeterminado.

Constructor predeterminado de Java

P) ¿Cuál es el propósito de un constructor predeterminado?

El constructor predeterminado se utiliza para proporcionar los valores predeterminados al objeto como 0, nulo, etc., según el tipo.

Ejemplo de constructor predeterminado que muestra los valores predeterminados

 //Let us see another example of default constructor //which displays the default values class Student3{ int id; String name; //method to display the value of id and name void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects Student3 s1=new Student3(); Student3 s2=new Student3(); //displaying values of the object s1.display(); s2.display(); } } 
Pruébalo ahora

Producción:

 0 null 0 null 

Explicación: En la clase anterior, no estás creando ningún constructor, por lo que el compilador te proporciona un constructor predeterminado. Aquí los valores 0 y nulos los proporciona el constructor predeterminado.


Constructor parametrizado de Java

Un constructor que tiene un número específico de parámetros se llama constructor parametrizado.

¿Por qué utilizar el constructor parametrizado?

El constructor parametrizado se utiliza para proporcionar diferentes valores a distintos objetos. Sin embargo, también puede proporcionar los mismos valores.

Ejemplo de constructor parametrizado

En este ejemplo, hemos creado el constructor de la clase Student que tiene dos parámetros. Podemos tener cualquier número de parámetros en el constructor.

 //Java Program to demonstrate the use of the parameterized constructor. class Student4{ int id; String name; //creating a parameterized constructor Student4(int i,String n){ id = i; name = n; } //method to display the values void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects and passing values Student4 s1 = new Student4(111,'Karan'); Student4 s2 = new Student4(222,'Aryan'); //calling method to display the values of object s1.display(); s2.display(); } } 
Pruébalo ahora

Producción:

 111 Karan 222 Aryan 

Sobrecarga de constructores en Java

En Java, un constructor es como un método pero sin tipo de retorno. También se puede sobrecargar como los métodos Java.

Constructor sobrecarga en Java es una técnica de tener más de un constructor con diferentes listas de parámetros. Están dispuestos de forma que cada constructor realice una tarea diferente. El compilador los diferencia por el número de parámetros en la lista y sus tipos.

Ejemplo de sobrecarga de constructores

 //Java program to overload constructors class Student5{ int id; String name; int age; //creating two arg constructor Student5(int i,String n){ id = i; name = n; } //creating three arg constructor Student5(int i,String n,int a){ id = i; name = n; age=a; } void display(){System.out.println(id+' '+name+' '+age);} public static void main(String args[]){ Student5 s1 = new Student5(111,'Karan'); Student5 s2 = new Student5(222,'Aryan',25); s1.display(); s2.display(); } } 
Pruébalo ahora

Producción:

 111 Karan 0 222 Aryan 25 

Diferencia entre constructor y método en Java

Existen muchas diferencias entre constructores y métodos. Se dan a continuación.

Constructor JavaMétodo Java
Se utiliza un constructor para inicializar el estado de un objeto.Se utiliza un método para exponer el comportamiento de un objeto.
Un constructor no debe tener un tipo de retorno.Un método debe tener un tipo de retorno.
El constructor se invoca implícitamente.El método se invoca explícitamente.
El compilador de Java proporciona un constructor predeterminado si no tiene ningún constructor en una clase.El compilador no proporciona el método en ningún caso.
El nombre del constructor debe ser el mismo que el nombre de la clase.El nombre del método puede ser o no el mismo que el nombre de la clase.

Constructores de Java frente a métodos

Constructor de copia de Java

No existe un constructor de copias en Java. Sin embargo, podemos copiar los valores de un objeto a otro como el constructor de copias en C++.

Hay muchas formas de copiar los valores de un objeto a otro en Java. Ellos son:

  • Por constructor
  • Asignando los valores de un objeto a otro.
  • Por el método clone() de la clase Object

En este ejemplo, copiaremos los valores de un objeto en otro usando el constructor Java.

¿Qué tan grande es la pantalla de mi computadora?
 //Java program to initialize the values from one object to another object. class Student6{ int id; String name; //constructor to initialize integer and string Student6(int i,String n){ id = i; name = n; } //constructor to initialize another object Student6(Student6 s){ id = s.id; name =s.name; } void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student6 s1 = new Student6(111,'Karan'); Student6 s2 = new Student6(s1); s1.display(); s2.display(); } } 
Pruébalo ahora

Producción:

 111 Karan 111 Karan 

Copiar valores sin constructor

Podemos copiar los valores de un objeto en otro asignando los valores del objeto a otro objeto. En este caso, no es necesario crear el constructor.

 class Student7{ int id; String name; Student7(int i,String n){ id = i; name = n; } Student7(){} void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student7 s1 = new Student7(111,'Karan'); Student7 s2 = new Student7(); s2.id=s1.id; s2.name=s1.name; s1.display(); s2.display(); } } 
Pruébalo ahora

Producción:

 111 Karan 111 Karan 

P) ¿El constructor devuelve algún valor?

Sí, es la instancia de clase actual (no puede usar el tipo de retorno pero devuelve un valor).


¿Puede el constructor realizar otras tareas en lugar de la inicialización?

Sí, como la creación de objetos, iniciar un hilo, llamar a un método, etc. Puede realizar cualquier operación en el constructor tal como lo realiza en el método.


¿Existe una clase Constructor en Java?

Sí.


¿Cuál es el propósito de la clase Constructor?

Java proporciona una clase Constructor que se puede utilizar para obtener la información interna de un constructor en la clase. Se encuentra en el paquete java.lang.reflect.