En Programación modular, y más específicamente en programación orientada a objetos, se denomina encapsulamiento
al ocultamiento del estado, es decir, de los datos miembro, de un
objeto de manera que sólo se puede cambiar mediante las operaciones
definidas para ese objeto.
Cada objeto
está aislado del exterior, es un módulo natural, y la aplicación entera
se reduce a un agregado o rompecabezas de objetos. El aislamiento
protege a los datos asociados a un objeto contra su modificación por
quien no tenga derecho a acceder a ellos, eliminando efectos secundarios
e interacciones.
De esta forma el usuario de la clase puede obviar la implementación
de los métodos y propiedades para concentrarse sólo en cómo usarlos. Por
otro lado se evita que el usuario pueda cambiar su estado de maneras
imprevistas e incontroladas.
Encapsulamiento
Como se puede observar de los diagramas, las variables
del objeto se localizan en el centro o núcleo del objeto. Los métodos
rodean y esconden el núcleo del objeto de otros objetos en el programa. 'Al empaquetamiento de las variables de un objeto con la protección de sus métodos se le llama encapsulamiento.
Típicamente, el encapsulamiento es utilizado para esconder detalles de
la puesta en práctica no importantes de otros objetos. Entonces, los
detalles de la puesta en práctica pueden cambiar en cualquier tiempo sin
afectar otras partes del programa.
El encapsulamiento de variables y métodos en un componente de software
ordenado es, todavía, una simple idea poderosa que provee dos
principales beneficios a los desarrolladores de software: El
encapsulamiento consiste en unir en la Clase las características y
comportamientos, esto es, las variables y métodos. Es tener todo esto en
una sola entidad. En los lenguajes estructurados esto era imposible. Es
evidente que el encapsulamiento se logra gracias a la abstracción y el
ocultamiento que veremos a continuación. La utilidad del encapsulamiento
va por la facilidad para manejar la complejidad, ya que tendremos a las
Clases como cajas negras donde sólo se conoce el comportamiento pero no
los detalles internos, y esto es conveniente porque lo que nos
interesará será conocer qué hace la Clase pero no será necesario saber
cómo lo hace.
La encapsulación da lugar a que las clases se dividan en dos partes:
- Interfaz: Captura la visión externa de una clase, abarcando la abstracción del comportamiento común a los ejemplos de esa clase.
- Implementación: Comprende la representación de la abstracción, así como los mecanismos que conducen al comportamiento desead