Ya hemos visto las ventajas que tiene Java como un lenguaje de programación orientado a objetos, donde uno de los conceptos fundamentales son los constructores.
Por ello, aquí exploraremos todo lo básico acerca de qué es un constructor en Java, cómo puedes implementarlo y sus tipos. ¡Comencemos!
Qué es un constructor en Java
En la programación orientada a objetos (y en Java), un constructor es un método especial que se utiliza para inicializar un objeto recién creado y asignarle valores iniciales a sus variables de instancia.
En otras palabras, un constructor es una función que se ejecuta automáticamente cuando se crea un objeto de una clase específica.
Para qué sirve un constructor en Java
Un constructor sirve para inicializar el objeto y establecer sus propiedades y valores predeterminados. Tiene el mismo nombre que la clase y no cuenta con ningún valor de retorno, ya que su función principal es inicializar el objeto y no devolver ningún valor.
Además, un constructor puede aceptar argumentos, lo que permite configurar el objeto con valores específicos al momento de su creación.
Antes de definir un constructor en la programación orientada a objetos, es necesario definir la clase que contiene el constructor. La clase es el «molde» a partir del cual se crearán los objetos, y es en la definición de la clase donde se establecen las propiedades y los métodos que los objetos podrán utilizar.
Una vez que se ha definido la clase, se puede determinar el constructor. Debe tener el mismo nombre que la clase y se define dentro de la clase. El constructor puede tener parámetros si se desea que los objetos tengan valores iniciales específicos al ser creados.
Cómo se implementan los constructores en Java
Un constructor en Java tiene el mismo nombre que la clase a la que pertenece, y no posee un tipo de retorno explícito, lo que significa que no se utiliza la palabra clave void ni ningún otro tipo de datos para especificar el valor de retorno del constructor.
Un constructor puede tener parámetros, mismos que se utilizan para proporcionar valores iniciales a los campos de datos de la clase. Estos parámetros se especifican en la definición del constructor, entre los paréntesis.
Por ejemplo, supongamos que tenemos una clase Persona con los campos nombre y edad. Podemos definir un constructor para la clase Persona:
public class Persona { String nombre; int edad; public Persona(String nombre, int edad) { this.nombre = nombre; this.edad = edad; } } |
En este ejemplo, el constructor Persona toma dos parámetros (nombre y edad) y utiliza la palabra clave «this» para referirse a los campos nombre y edad de la clase.
Cuando creamos un objeto de la clase Persona, podemos proporcionar los valores iniciales para los campos nombre y edad utilizando el constructor:
Persona persona1 = new Persona("Juan", 25); |
En este ejemplo, estamos creando un nuevo objeto Persona llamado «persona1», y estamos pasando los valores «Juan» y «25» al constructor para inicializar los campos nombre y edad del objeto.
Tipos de constructores en Java
En Java hay dos diferentes tipos de constructores que pueden utilizarse dependiendo de las necesidades de la clase y de los objetos que se van a crear.
Constructor predeterminado (default constructor)
El constructor predeterminado lo proporciona automáticamente Java en caso de que no se defina ningún constructor explícitamente en la clase. Este constructor no toma ningún parámetro y su cuerpo está vacío.
Simplemente inicializa los miembros de datos de la clase con sus valores predeterminados. Si un programador desea proporcionar una implementación personalizada para el constructor predeterminado, debe definir un constructor explícito en la clase y proporcionar el cuerpo del constructor.
public class Ejemplo { int num; String cadena; public Ejemplo() { num = 0; cadena = "Ejemplo"; } } |
Constructor parametrizado (parameterized constructor)
El constructor parametrizado toma uno o más parámetros y se utiliza para inicializar los miembros de datos de la clase con valores específicos proporcionados por el usuario. Un constructor parametrizado debe definirse explícitamente en la clase y se utiliza para crear objetos con diferentes estados y comportamientos, en función de los valores proporcionados en los parámetros.
public class Ejemplo { int num; String cadena; public Ejemplo(int n, String s) { num = n; cadena = s; } } |
Cómo crear un constructor en Java
1. Define la clase en la que deseas crear el constructor
Es importante primero establecer una clase, ya que los constructores son parte de las clases.
public class Coche {} |
2. Define los atributos de la clase
Por ejemplo:
public class Coche { String marca; double kilometraje; String color; String diseño; int anoFabricacion; double precio; String modelo; } |
3. Define el constructor en sí
Para hacer esto, escribe el nombre de la clase seguido de paréntesis. Dentro de los paréntesis, escribe los parámetros que deseas pasar al constructor.
public Coche(String marca, double kilometraje, String color, String diseño, int anoFabricacion, double precio, String modelo){} |
4. Asigna los valores de los parámetros
Dentro del cuerpo del constructor, asigna los valores de los parámetros a los atributos correspondientes de la clase.
public Coche(String marca, double kilometraje, String color, String diseño, int anoFabricacion, double precio, String modelo) { this.marca = marca; this.kilometraje = kilometraje; this.color = color; this.diseño = diseño; this.anoFabricacion = anoFabricacion; this.precio = precio; this.modelo = modelo; } |
5. Utiliza la clase para construir los objetos
Por ejemplo:
miCoche = new Coche("Toyota", 12000, "Rojo", "Deportivo", 2018, 25000.00, "Corolla"); |
¡Y listo! Ahora que ya exploraste los constructores en este lenguaje, te invitamos a saber más acerca de cómo programar con Java.