
Taller de Programación III
Ingeniería de Sistemas
Universidad de Nariño Ipiales
8
Encapsulamiento (Ocultar la implementación)
Existen datos que no tienen por qué ser conocidos por todas las clases por ejemplo si estamos usando la clase
Persona; no se necesita conocer los atributos que son inherentes al objeto y solo controlan su funcionamiento
interno; por ejemplo, cuando se mira a una persona se puede saber inmediatamente si es hombre o mujer
(propiedad) o puede hablar y se obtiene una respuesta procesada (método); también se puede conocer el
color de su cabello y ojos. En cambio, jamás se sabrá qué cantidad de energía exacta tiene o cuantas neuronas
le quedan, ni siquiera preguntándole ya que ninguna de sus propiedades externas visibles o funciones de
comunicación al público le permiten saber esos datos.
Esto es la encapsulación u ocultación; hacer las variables que son innecesarias para el tratamiento del objeto,
pero necesarias para su funcionamiento privadas, así como las funciones que no necesitan interacción del
usuario o que solo pueden ser llamadas por otras funciones dentro del objeto (Como por ejemplo, palpitar).
El encapsulamiento o encapsulación consiste en combinar datos y comportamiento en un paquete y ocultar
los detalles de la implementación del usuario del objeto.
En muchos lenguajes de programación orientados a objetos, el interior de una clase (su implementación)
permanece oculta para las otras clases. Hay dos aspectos en este punto: primero un programador que hace
uso de una clase no necesita conocer su interior; segundo, a un usuario no se le permite conocer los detalles
internos.
Si necesitáramos conocer todos los detalles internos de todas las clases que queremos usar, no terminaríamos
nunca de implementar sistemas grandes, por lo tanto, no siempre hay necesidad de conocer.
El segundo principio, no se permite conocer, es diferente. El lenguaje de programación no permite el acceso a
una sección privada de una clase mediante sentencias en otra clase.
Derechos de acceso
El estado de un objeto es el conjunto de los valores de sus atributos. Una modificación arbitraria, intencionada
o por error, de este estado puede dar lugar a inconsistencias o comportamientos indeseados del objeto. Sería
deseable poder controlar el acceso a los atributos de los objetos. Los modificadores de acceso definen la
visibilidad de un campo o de un método.
Java proporciona mecanismos de acceso a los componentes de una clase, de forma que es posible ajustarlo a
las necesidades de los objetos. Para ello, se antepone a la declaración el modificador de acceso que se requiere:
a) Acceso privado (private): Los elementos privados sólo se pueden usar dentro de la clase que los define,
nunca desde ninguna otra clase
b) Acceso protegido (protected): Los elementos protegidos sólo se pueden usar dentro de la clase que
los define, aquellas que la extienda y cualquier clase en el mismo paquete
c) Acceso público (public): Dicho elemento se puede usar libremente
d) Acceso de paquete: No se escribe nada. El acceso a estos componentes es libre dentro del paquete en
el que se define la clase
Aunque las especificaciones públicas, privadas y protegidas pueden aparecer en cualquier orden, en Java los
programadores suelen seguir una de las siguientes reglas en el diseño, y de las que usted puede elegir la que
considere más eficiente.
a) Poner los miembros privados primero debido a que contiene los atributos o datos.