12.3. Métodos de encapsulación y acceso (Getters y Setters)

La encapsulación es uno de los cuatro principios fundamentales de la programación orientada a objetos (POO), junto con la herencia, el polimorfismo y la abstracción. Es esencial para crear software seguro, confiable y fácil de mantener. La encapsulación en Java se implementa mediante el uso de modificadores de acceso y métodos de acceso, conocidos como captadores y definidores.

Modificadores de acceso: privado, protegido, público

Los modificadores de acceso en Java definen la visibilidad de una clase, método o variable en relación con otras partes del código. Hay tres modificadores de acceso principales:

  • privado: solo se puede acceder al miembro dentro de la propia clase. Es el nivel de acceso más restrictivo y se utiliza para ocultar detalles de implementación y mantener la integridad de los datos.
  • protegido: El miembro es accesible dentro de la propia clase, en subclases (incluso si están en paquetes diferentes) y en otras clases del mismo paquete. Es menos restrictivo que el privado y se usa comúnmente en situaciones donde hay herencia.
  • público: se puede acceder al miembro desde cualquier otra clase, independientemente del paquete en el que se encuentre. Es el nivel de acceso menos restrictivo y debe usarse con precaución ya que expone a los miembros al mundo exterior.

Encapsulación en la práctica

La encapsulación es la práctica de ocultar los detalles de implementación interna de una clase y exponer solo los métodos necesarios para usar esa clase. Esto se hace para evitar el acceso directo a los campos (también conocidos como variables de instancia) de una clase, lo que podría resultar en estados inconsistentes o no deseados. En cambio, los campos se marcan como privados y se accede a ellos a través de métodos públicos, captadores y definidores.

Getters y Setters

Los captadores y definidores son métodos públicos que permiten leer (obtener) y modificar (establecer) campos privados de una clase. Son el puerto de entrada y salida de los datos encapsulados. La convención en Java es nombrar estos métodos como getFieldName para captadores y setFieldName para establecedores, donde FieldName comienza con una letra mayúscula y corresponde al nombre del campo privado.

Ejemplo de encapsulación con captadores y definidores


Persona de clase pública {
    nombre de cadena privada;
    edad privada;

    // Captador para el campo de nombre
    cadena pública getName() {
        nombre de retorno;
    }

    // Establecedor del campo de nombre
    setName público vacío (nombre de cadena) {
        this.nombre = nombre;
    }

    // Getter para el campo de edad
    público int getAge() {
        edad de retorno;
    }

    // Establecedor del campo de edad
    setAge público vacío (int edad) {
        si (edad > 0) {
            this.age = edad;
        } demás {
            throw new IllegalArgumentException ("La edad debe ser mayor que cero.");
        }
    }
}

En este ejemplo, la clase Persona tiene dos campos privados: nombre y edad. Los métodos getters y setters correspondientes permiten el acceso controlado a estos campos. Tenga en cuenta que en el definidor setAge, hay una verificación para garantizar que la edad no sea negativa, lo cual es un ejemplo de cómo la encapsulación ayuda a mantener la integridad de los datos.

Ventajas de la encapsulación

La encapsulación ofrece varias ventajas, entre ellas:

  • Control de acceso: los desarrolladores pueden controlar quién tiene acceso a las variables de instancia de una clase.
  • Flexibilidad y mantenimiento: la implementación interna de una clase se puede cambiar sin afectar a las clases que la utilizan, siempre y cuando los métodos de acceso sigan siendo los mismos.
  • Mayor seguridad: Al evitar el acceso directo a los campos, es posible prevenir estados inconsistentes y proteger los datos contra manipulaciones no deseadas.

Conclusión

La encapsulación es un concepto fundamental en la programación orientada a objetos que ayuda a proteger los datos y mantener el código organizado y seguro. Los modificadores de acceso privado, protegido y público son herramientas poderosas para controlar la visibilidad de los miembros de una clase. Los captadores y definidores son los métodos que le permiten interactuar con estos miembros de forma controlada, respetando las reglas comerciales y manteniendo la integridad de los datos. Al comprender y aplicar correctamente la encapsulación, los programadores pueden crear sistemas robustos y fáciles de mantener.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre la encapsulación en Java es correcta?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Métodos de encapsulación y de acceso (captadores y definidores): Definición de métodos de acceso (captadores) 78

Siguiente página del libro electrónico gratuito:

Métodos de encapsulación y de acceso (captadores y definidores): Definición de métodos de acceso (captadores)

Tiempo estimado de lectura: 4 minutos

Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.