Encapsulación en Java
En la programación orientada a objetos, la encapsulación (inglés: Encapsulation) se refiere a un método que envuelve y oculta los detalles de implementación de una interfaz de función abstracta.
La encapsulación puede considerarse una barrera de protección que evita que el código y los datos de la clase sean accedidos aleatoriamente por código definido en clases externas.
Para acceder al código y los datos de la clase, es necesario pasar por un control estricto de interfaces.
La función principal de la encapsulación es que podemos modificar nuestro propio código de implementación sin tener que modificar los fragmentos de programa que llaman a nuestro código.
Una encapsulación adecuada facilita que el código sea más fácil de entender y mantener, y también aumenta la seguridad del código.
Ventajas de la encapsulación
1. Una buena encapsulación puede reducir el acoplamiento.
2. La estructura interna de la clase se puede modificar libremente.
3. Se puede tener un control más preciso sobre las variables miembro.
4. Ocultar información y detalles de implementación.
Pasos para implementar la encapsulación en Java
1. Modificar la visibilidad de los atributos para limitar el acceso a ellos (generalmente se restringe a private), por ejemplo:
En este código, elnameyageatributo se establece como privado; solo la propia clase puede acceder a él, las demás clases no pueden acceder, lo que oculta la información.
2. Proporcionar métodos públicos de acceso externo para cada atributo de valor, es decir, crear un par de métodos de obtención y asignación para acceder a los atributos privados, por ejemplo:
Usar lathispalabra clave es para resolver el conflicto de nombres entre la variable de instancia (private String name) y la variable local (la variable name en setName(String name)).
Ejemplo
Veamos un ejemplo de una clase de encapsulación en Java:
Código del archivo EncapTest.java:
En el ejemplo anterior, los métodos públicos son la entrada para que las clases externas accedan a las variables miembro de la clase.
Normalmente, estos métodos se denominan métodos getter y setter.
Por lo tanto, cualquier clase que desee acceder a las variables miembro privadas de la clase debe pasar por estos métodos getter y setter.
El siguiente ejemplo ilustra cómo se accede a las variables de la clase EncapTest:
Código del archivo RunEncap.java:
El resultado de compilar y ejecutar el código anterior es el siguiente:
Name : James Age : 20Otras extensiones