Clases y Objetos

Constructores y Accesores

Aprendamos sobre los constructores y accesores en Java, dos conceptos fundamentales para la creación e inicialización de objetos, así como para el acceso a sus atributos.

En la Programación Orientada a Objetos (POO), los constructores y accesores son conceptos fundamentales que desempeñan un papel crucial en la creación, inicialización y acceso a los objetos en Java. Estos conceptos son esenciales para garantizar la integridad de los datos y facilitar la interacción con los objetos de una clase.

Constructores

Un constructor es un método especial que se utiliza para crear e inicializar objetos de una clase. El constructor tiene el mismo nombre que la clase y no tiene un tipo de retorno, ni siquiera void. Su función principal es asignar valores iniciales a los atributos del objeto cuando se crea una instancia de la clase.

Por ejemplo, si tenemos una clase Persona, podemos definir un constructor para inicializar sus atributos de la siguiente manera:

Persona.java
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 los asigna a los atributos correspondientes utilizando la palabra clave this para referirse al objeto actual.

El uso de this es importante para diferenciar entre los parámetros del constructor y los atributos de la clase, especialmente cuando tienen el mismo nombre. Sin this, el código no sabría a qué variable te estás refiriendo, lo que podría causar confusión o errores.

Constructor por Defecto

Si no defines un constructor explícitamente en tu clase, Java proporciona automáticamente un constructor por defecto sin parámetros que inicializa los atributos con valores predeterminados (por ejemplo, null para objetos, 0 para números, etc.). Sin embargo, si defines cualquier constructor personalizado, el constructor por defecto ya no estará disponible a menos que lo declares explícitamente.

Sobrecarga de Constructores y Constructor Vacío

Puedes tener múltiples constructores en una clase, cada uno con diferentes parámetros. Esto se conoce como sobrecarga de constructores y te permite crear objetos de diferentes maneras según las necesidades de tu programa. Por ejemplo, podrías agregar un constructor vacío (sin parámetros) a la clase Persona para permitir la creación de objetos sin necesidad de proporcionar valores iniciales:

Persona.java
public class Persona {
    String nombre;
    int edad;

    public Persona() {
        // Constructor vacío
    }

    public Persona(String nombre, int edad) {
        this.nombre = nombre;
        this.edad = edad;
    }
}
Es importante tener en cuenta que si defines un constructor personalizado (como el constructor con parámetros), el constructor por defecto ya no estará disponible a menos que lo declares explícitamente. Por lo tanto, si deseas tener ambos constructores (el vacío y el personalizado), debes asegurarte de definir ambos en tu clase.

Accesores

Los accesores son métodos que se utilizan para acceder a los atributos de un objeto de manera controlada. En Java, los accesores se dividen en dos categorías principales: getters y setters.

  • Getters: Son métodos que devuelven el valor de un atributo. Por convención, los getters suelen comenzar con la palabra "get" seguida del nombre del atributo con la primera letra en mayúscula. Por ejemplo:
  • Setters: Son métodos que permiten modificar el valor de un atributo. Por convención, los setters suelen comenzar con la palabra "set" seguida del nombre del atributo con la primera letra en mayúscula. Por ejemplo:
Persona.java
public class Persona {
    String nombre;
    int edad;

    public Persona(String nombre, int edad) {
        this.nombre = nombre;
        this.edad = edad;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    } 
}

En este ejemplo, hemos definido getters y setters para los atributos nombre y edad. Los getters permiten obtener el valor de estos atributos, mientras que los setters permiten modificarlos de manera controlada.

El uso de getters y setters es una práctica recomendada para mantener la encapsulación y proteger los datos de una clase. Al utilizar getters y setters, puedes controlar cómo se acceden y modifican los atributos de un objeto, lo que ayuda a garantizar la integridad de los datos y facilita el mantenimiento del código a largo plazo.
Es importante destacar que el uso de getters y setters no es obligatorio en todas las situaciones. En algunos casos, especialmente cuando los atributos de una clase son simples y no requieren validación o lógica adicional, puede ser aceptable acceder a ellos mediante otras funciones. Sin embargo, en general, es recomendable seguir el principio de encapsulación y utilizar getters y setters para proteger los datos y mantener la integridad de los objetos. A menos de que algún atributo sea más de control interno de la clase, en cuyo caso, no es necesario exponerlo a través de getters y setters.

Resumen

En resumen, los constructores y accesores son conceptos fundamentales en la Programación Orientada a Objetos que permiten la creación, inicialización y acceso controlado a los objetos en Java. Los constructores se utilizan para crear e inicializar objetos, mientras que los accesores (getters y setters) se utilizan para acceder y modificar los atributos de un objeto de manera controlada. Al utilizar estos conceptos de manera adecuada, los desarrolladores pueden garantizar la integridad de los datos y facilitar la interacción con los objetos en sus programas orientados a objetos.

Copyright Jesús Aurelio Castro Magaña © 2026