Saltar al contenido principal
Publicado el

Propiedades en Java

Compartir:

Introducción

En Java, la encapsulación es uno de los pilares fundamentales de la programación orientada a objetos. A través de las propiedades, usando métodos getter y setter, este pilar se materializa. Estas funciones permiten un control granular sobre cómo se accede y modifica la información de un objeto.

¿Por qué usar Propiedades?

1. Control sobre los datos

Es posible validar o modificar datos antes de que sean almacenados o retornados.

2. Flexibilidad

Los cambios internos en los métodos getter y setter pueden realizarse sin alterar la forma en que un objeto se usa externamente.

3. Seguridad

Limita el acceso directo a los campos de datos, garantizando su integridad.

Cómo Implementar

Una implementación común implica declarar un campo privado con métodos públicos para obtener (get) y establecer (set) los valores.

public class Ejemplo {
  private String nombre;

  // Getter
  public String getNombre() {
    return nombre;
  }

  // Setter
  public void setNombre(String nombre) {
    if(nombre != null && !nombre.trim().isEmpty()) {
      this.nombre = nombre;
    } else {
      throw new IllegalArgumentException("Nombre inválido");
    }
  }
}

Buenas Prácticas al usar Propiedades

  1. Validación de Datos: Siempre valida los datos en el método setter antes de asignarlos al campo.
  2. Encapsulación Consistente: Evita exponer campos directamente. Utiliza getters y setters.
  3. Documentación: Documenta la función y las restricciones de cada propiedad.
  4. Nomenclatura Conveniente: Usa convenciones de nomenclatura consistentes para las propiedades. Generalmente, se usan métodos que comienzan con "get" y "set".

Ejemplo Práctico

Veamos un ejemplo en el que implementamos una clase Propiedades que representa a una persona con nombre, apellido y edad.

package com.caffeinealgorithm.programaremjava;

public class Propiedades {
  private String primerNombre = "", apellido = "";
  private int edad = 28;

  public void setPrimerNombre(String primerNombre) {
    if (primerNombre != "")
      this.primerNombre = primerNombre;
    else
      System.out.println("La cadena del primer nombre no puede estar vacía.");
  }

  public void setApellido(String apellido) {
    if (apellido != "")
      this.apellido = apellido;
    else
      System.out.println("La cadena del apellido no puede estar vacía.");
  }

  public int getEdad() {
    return edad;
  }

  public void informacion() {
    System.out.printf("Nombre: %s %s\n", primerNombre, apellido);
  }
}

Consejos Adicionales

  • Inmutabilidad: En ciertos escenarios, puede ser beneficioso crear propiedades de solo lectura, reforzando el concepto de inmutabilidad.
  • Rendimiento: Ten cuidado al implementar lógica compleja en getters y setters, ya que esto puede afectar al rendimiento.
  • Propiedades Calculadas: Además de simplemente retornar un campo, los getters pueden usarse para calcular y retornar un valor basado en múltiples campos.

Conclusión

Las propiedades, cuando se utilizan correctamente, enriquecen el código, haciéndolo seguro, flexible y de fácil mantenimiento. En Java, los métodos getter y setter son la forma estándar de implementar esta característica. Al dominarlos, garantizas robustez y claridad en tus aplicaciones.

Happy coding!