¿Qué es el Encapsulamiento – POO?

Dale amor a este post!!!

Cuando hablamos de encapsular, generalmente pensamos en meter algo dentro de una cápsula, y una cápsula no es nada mas que un contenedor o un envase.

El ejemplo mas sencillo que se me ocurre es cuando nosotros tenemos que separar la basura en contenedores especiales según el tipo de basura. Existe un contenedor amarillo para el plástico y aluminio, esta el azul para el papel y el cartón, el verde para el cristal y el vidrio y el gris para los desechos orgánicos.

En cada contenedor, vamos a colocar objetos que tienen características similares, el vidrio por ejemplo es un material frágil, transparente en algunos casos y puede venir de ventanas, lentes y botellas, el papel y el cartón son materiales fibrosos y por lo general se rompen con facilidad, pueden venir en forma de hojas, cajas, entre otros.

La encapsulación en la Programación Orientada a Objetos, consiste en almacenar y organizar en una clase, las características y funcionalidades de los objetos representándolas por medio de atributos y métodos, todo esto se logra como efecto secundario de la ABSTRACCIÓN.

El encapsulamiento, garantiza la integridad de los datos que contiene un objeto, y por integridad nos referimos a que los datos sean correctos y estén completos, además, evita el acceso a datos por cualquier otro medio distinto a los que nosotros especificamos en la clase.

El encapsulamiento hace uso del ocultamiento de la información ya que al encapsular algo de manera indirecta se protegen métodos y atributos, pero en cuanto a Programación Orientada a Objetos, ¿Qué tan seguros están tus atributos y tus métodos?.

Comúnmente podemos necesitar seguridad extra en algunos atributos que en otros y de la misma forma sucede con los métodos. A veces necesitamos modificar un atributo o utilizar un método de la clase mediante otra clase externa, para esto hay formas de evitar o permitir que una clase externa acceda a la información o modifique atributos o acceda a métodos de nuestra clase, es aquí donde aparecen los:

LOS MODIFICADORES DE ACCESO

Estos son palabras clave que se usan para especificar el nivel de acceso que podemos tener hacia un elemento de una clase. Los modificadores de acceso permiten dar un nivel de seguridad mayor a nuestras aplicaciones, restringiendo el acceso a nuestros atributos y métodos asegurándonos que el usuario deba seguir una ruta especificada por nosotros para acceder a la información.

Veamos un poco a detalla cada uno de los modificadores de acceso:

El modificador de acceso PUBLIC: Si un elemento de una clase es PUBLIC, tendremos acceso a el desde cualquier clase o instancia del proyecto sin importar el paquete o procedencia de esta.

El modificador de acceso PROTECTED: Este nos permite acceso a elementos de la misma clase, ademas podemos acceder también desde clases del mismo paquete y desde las clases que hereden de ella.

El modificador de acceso PRIVATE: Básicamente cualquier elemento de una clase que sea privado, puede ser accedido únicamente por la misma clase nada mas, es decir si un atributo es privado, solo puede ser accedido por los métodos o constructores de la misma clase. Ninguna otra clase sin importar la relación que tengan, podrá tener acceso.

¿Si no podemos acceder a elementos private a través de otra clase, entonces de qué forma podemos acceder a ellos?

Generalmente el acceso se consigue por medio de los métodos: GET y SET. Que deben forzosamente ser métodos PUBLIC y se usan como su nombre lo indica, GET para OBTENER y SET para ESTABLECER el valor de un atributo desde fuera de la clase.

El encapsulamiento, hace posible lidiar con la complejidad de los objetos, ya que a través de el podemos manipular la información de cada objeto de forma independiente donde solo se conocen las características y funcionalidades de cada un pero desconocemos los detalles internos. Estos es conveniente porque nos interesará conocer qué hace la clase junto con sus atributos y métodos, pero no necesitamos saber cómo lo hace.


Dale amor a este post!!!