11.5 Estructura de clases y objetos en Java: encapsulación

En Java, el concepto de encapsulación es uno de los pilares fundamentales de la programación orientada a objetos. La encapsulación es la técnica de ocultar los detalles de implementación de una clase y exponer sólo la funcionalidad necesaria al mundo exterior. Esto se realiza mediante control de acceso a los miembros de una clase, que son principalmente variables y métodos. La encapsulación ayuda a proteger los datos y mantener la integridad de los objetos, y hace que el código sea más fácil de mantener y evolucionar.

La encapsulación en Java se logra mediante modificadores de acceso, que controlan la visibilidad de las variables y métodos de una clase. Los cuatro modificadores de acceso en Java son:

  • privado: solo se puede acceder al miembro dentro de la propia clase.
  • predeterminado (sin modificador): se puede acceder al miembro dentro del mismo paquete.
  • protegido: se puede acceder al miembro dentro del mismo paquete o mediante subclases en diferentes paquetes.
  • público: se puede acceder al miembro desde cualquier lugar.

Para comprender mejor la encapsulación, consideremos un ejemplo de una clase que representa un banco. Supongamos que tenemos una clase llamada ContaBancaria que tiene un saldo como variable de instancia.


Cuenta Bancaria de clase pública {
    doble saldo privado;

    Cuenta bancaria pública (doble saldo inicial) {
        if (saldo inicial > 0) {
            this.saldo = saldo inicial;
        }
    }

    depósito público nulo (valor doble) {
        si (valor > 0) {
            saldo += valor;
        }
    }

    retiro booleano público (valor doble) {
        if (valor > 0 && saldo >= valor) {
            saldo -= valor;
            devolver verdadero;
        }
        falso retorno;
    }

    público doble getBalance() {
        saldo de retorno;
    }
}

En este ejemplo, la variable saldo está marcada como privada, lo que significa que no se puede acceder a ella directamente desde fuera de la clase ContaBancaria. En su lugar, se proporcionan métodos públicos como deposit(), cash() y getSaldo() para permitir que se realicen operaciones en el saldo de manera controlada.

El método deposit() le permite agregar dinero al saldo, pero solo si el monto es positivo. El método withdraw() le permite retirar dinero, pero también comprueba si el importe es positivo y si hay saldo suficiente. El método getSaldo() es un "getter" que permite a otras clases obtener el saldo actual, pero sin posibilidad de modificarlo directamente.

Además, el constructor de la clase ContaBancaria también impone la regla de que el saldo inicial debe ser mayor que cero. Esto es parte de la encapsulación, ya que garantiza que la cuenta bancaria comience en un estado válido.

La encapsulación también permite cambiar la implementación interna de una clase sin afectar las clases que la utilizan. Por ejemplo, si decidimos cambiar la forma en que se almacena o calcula el saldo internamente en la clase ContaBankaria, no necesitaríamos modificar el código de otras clases que dependen de ella, siempre y cuando el público Los métodos siguen siendo los mismos. p>

Otro aspecto importante de la encapsulación es que permite la creación de "setters", métodos que permiten modificar el valor de una variable de instancia de forma controlada. Por ejemplo, si quisiéramos permitir cambiar el saldo, podríamos agregar un método setSaldo() que incluiría validaciones antes de cambiar realmente el valor.

En resumen, la encapsulación es una práctica esencial en la programación orientada a objetos. Protege los datos de un objeto, mantiene la integridad del objeto, facilita el mantenimiento y la evolución del código y promueve la reutilización del código. Al diseñar sus clases en Java, aplique siempre la encapsulación para garantizar un diseño de software robusto y confiable.

Finalmente, es importante recordar que la encapsulación no se trata solo de ocultar datos o hacerlos privados. Se trata de definir una interfaz clara y consistente para tus clases, que haga que tus objetos sean más fáciles de entender y usar correctamente. La encapsulación ayuda a prevenir el uso inadecuado de una clase y garantiza que se apliquen las reglas comerciales, lo que hace que el software sea más confiable y más fácil de mantener.

Ahora responde el ejercicio sobre el contenido:

_¿Cuál de los siguientes modificadores de acceso en Java permite acceder a un miembro de una clase sólo dentro de la propia clase, como se analiza en el texto sobre encapsulación?

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

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Estructura de clases y objetos en Java: Herencia

Siguiente página del libro electrónico gratuito:

64Estructura de clases y objetos en Java: Herencia

5 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 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.