0% encontró este documento útil (0 votos)
45 vistas7 páginas

(M3-L2) Encapsulamiento

El documento habla sobre el encapsulamiento en programación orientada a objetos. Explica que el encapsulamiento oculta la información de un objeto y solo expone lo que quiere hacer público. También describe cómo se implementa el encapsulamiento mediante el uso de modificadores de acceso private para las variables de instancia y métodos públicos getters y setters para acceder a esas variables. Finalmente, discute el alcance de los identificadores en Java y cómo afecta dónde se pueden usar dentro de una clase.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
45 vistas7 páginas

(M3-L2) Encapsulamiento

El documento habla sobre el encapsulamiento en programación orientada a objetos. Explica que el encapsulamiento oculta la información de un objeto y solo expone lo que quiere hacer público. También describe cómo se implementa el encapsulamiento mediante el uso de modificadores de acceso private para las variables de instancia y métodos públicos getters y setters para acceder a esas variables. Finalmente, discute el alcance de los identificadores en Java y cómo afecta dónde se pueden usar dentro de una clase.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

lOMoARcPSD|7552446

(M3-L2) Encapsulamiento

Programación Orientada a Objetos (Universidad Siglo 21)

StuDocu no está patrocinado ni avalado por ningún colegio o universidad.


Descargado por AulaVirtual_Fundamen ([email protected])
lOMoARcPSD|7552446

Encapsulamiento

Programación
Orientada a
Objetos

Descargado por AulaVirtual_Fundamen ([email protected])


lOMoARcPSD|7552446

Encapsulamiento
“Se dice que un objeto Introducción
encapsula datos y
funcionalidad y que,
además, oculta su En la programación orientado a objetos (POO) el encapsulamiento surge de
información, dado que la necesidad de usar procedimientos o funciones (en formas de métodos)
solamente expone lo guardados en otras clases y es la expresión del reuso de programas. Esta
que quiere hacer
público a otros
forma de trabajo permite llamar estos métodos, sin necesidad de conocer
objetos”. los detalles de cómo trabajan, lo que permite acelerar los tiempos de
(Vivona, 2011, programas al basar el trabajo actual en estructuras ya hechas y probadas.
http://goo.gl/5tGwCQ)
Esta forma de trabajo se basa en la abstracción de procedimiento, dado que
conocemos qué esperar del método, permaneciendo oculto todo el trabajo
interno; solo nos importa la interfaz para usar o llamar al método.
Esto simplifica los programas al requerir solamente proveer la información
esencial sobre cómo usar el método sin detalles irrelevantes. La interfaz
mencionada es el nombre del método y la lista de parámetros, lo que se
llama signatura o firma del método

A medida que los programas se complejizan y aumentan de tamaño por


tener muchos requerimientos a cumplir, se hace necesario compartir la
tarea de completar su programación entre un equipo de trabajo, para que
los tiempos de la tarea se mantengan en plazos requeridos. Cuando la
abstracción de procedimientos o encapsulamiento es usada, es común que
el procediminto de un programador modifique los mismos datos que otro y
entonces es necesario ser consistente, es decir, que la tarea debe realizarse
simultáneamente y que no haya solapamiento entre estos procesos. Esto
hace razonable aislar los procedimientos de cada programador o equipo de
ellos, junto con los datos que operan para encapsularlos en un módulo que
explícitamente controle cualquier uso de sus componentes por parte de
otros módulos.

A menudo, varios métodos comparten y usan los mismos datos y se debe


asegurar que las acciones de un método no interfieran inesperadamente con
las acciones de otro método. Así, los datos y los métodos que puedan
modificarlos debe ser ocultados en un módulo. Lo que hace esta
encapsulación es crear un objeto que otros componentes del sistema
puedan usar una y otra vez. La condición es que debe estar declarado como
público para permitir el acceso de los otros metodos que lo requieran.

En Java hay una gran cantidad de clases almacenadas en librerías o


bibliotecas de clases, con sus métodos, que le agregan mucho valor a la
elección de este lenguaje por poder contar con miles de programas listos

Descargado por AulaVirtual_Fundamen ([email protected])


lOMoARcPSD|7552446

para ser usados como componentes del sistema actual. Esto permite ahorrar
mucho esfuerzo en la programación de sistemas grandes.

La encapsulación tiene la ventaja de que el usuario de un objeto no necesita


saber cómo se almacenan los datos ni los detalles de implementación de los
métodos. Estos detalles podrían cambiar mientras que la especificación de
los métdos o firma seguirán siendo constantes.

Control de acceso a los datos

La idea detrás de usar objetos es que los datos y los métodos que tienen
acceso a estos datos están encapsulados de tal forma que ningun otro objeto
externo puede acceder a estos, excepto a través de los métodos del mismo
objeto. Es decir que para leer y modificar los datos de un objeto, no hay
forma alternativa de hacerlo si no es a través de los métodos
especificamente diseñados para hacerlo.

Para implementar el encapsulamiento, de acuerdo a lo visto, debieramos


cerrar la posibilidad del acceso directo a todas las variables de una clase, de
instancia o de clase, con la palabra reservada de control de acceso private
para impedir el acceso directo. Un vez que fueron declaradas private, nos
aseguramos que las modificaciones de las variables de instancia solo se
realicen a través de los métodos. Así, cualquier cambio en la representación
interna del objeto estará oculta al usuario, quien seguirá llamándolo de la
misma forma aunque cambie su funcionamiento.

Junto con esta primera pauta, debemos crear métodos para leer y modificar
los valores de estas variables y a ellos sí le ponemos el modificador de acceso
public para que los procesos que quieran leerlas o modificarlas puedan usar
estos métodos. Además, estos métodos tienen una forma típica de llamarse:
los metodos getNombreDeVariable se usaran para obtener o leer una
variable y los métodos setNombreDeVariable para los que modifican las
variables. A estas dos formas de procesos se los denomina generalmente
Setters y Getters, para los que fijan o modifican variables y para los que
obtienen su valor, respectivamente.

Descargado por AulaVirtual_Fundamen ([email protected])


lOMoARcPSD|7552446

Figura 1: Funciones Getter y procedimientos Setter interactuando

Fuente: elaboración propia.

El alcance de los identificadores


Hablando de lo público y privado de objetos y métodos, vamos a tratar el
alcance de validez de los componentes de una clase, es decir que
dependiendo de donde son creados los identificadores, determinamos
donde es posible convocarlos para ser usados.
En Java, los identificadores solo pueden ser usados después de que hayan
sido definidos. Entender el alcance de los identificadores es un aspecto de
aseguar que sus programas actuarán de la manera esperada. (Patterson
Hume y Stephenson, 2000).
Conoceremos, entonces, cómo pueden ser definidos los identificadores:
 en una sentencia de declaración de variables;
 como la variable índice de una sentencia for;
 como el nombre de un método o clase;
 como el nombre de un parámetro de un método.

El alcance de un identificador es la parte del programa en donde el


identificador es conocido y donde puede ser usado.
 Alcance definido por la construcción sintáctica: en general, un
identificador es conocido desde el punto donde es introducido hasta el
final de la construcción que lo abarca.
 Identificadores globales: los identificadores definidos en la clase como
variables, constantes o métodos son conocidos por cualquier método
contenido y se les llama locales a la clase.

Descargado por AulaVirtual_Fundamen ([email protected])


lOMoARcPSD|7552446

 Variable de control para las iteraciones: un identificador introducido


como un índice de un loop for puede ser usado en cuerpo del loop for,
pero no fuera de él. Es local al loop for.
 Sentencias estructuradas: un identificador introducido en una
declaración dentro del cuerpo de una sentencia estructurada, tal como
for, while o if, puede ser usada hasta el final de ese cuerpo. Es local al
cuerpo.
 La redefinición está prohibida: un identificador no puede ser redefinido
en un alcance donde ya es conocido. Por ejemplo, no es legal escribir una
declaración de una variable m en un alcance donde una variable m está
ya definida o crear la variable i del índice de un loop for en un alcance
donde ya ha sido definido, es decir, dentro del mismo bloque for.
 Métodos: un método introduce un nuevo alcance. El nombre del método
es siempre conocido en el cuerpo de este y en cualquier otro método
perteneciente a la misma clase. Si el método está declarado como público
en una clase, entonces, es conocido para cualquier objeto que incorpore
con import a esa clase y cuando se crea un objeto de esa clase.
 Re-usando identificadores: los nombres de parámetros e identificadores
dentro de un método pueden ser los mismos nombres usados en el
alcance de la clase donde está definido. Así, el identificador está siendo
reusado. Si no fuera posible usar nuevamente los identificadores, el
programador escritor de un método necesita conocer todos los
identificadores globales dentro de las clases donde va a ser usado el
método y eso es difícil de establecer de antemano. Si un identificador re-
usado aparece en una sentencia dentro del método y coincide con un
identificador local (parámetro, variable o constante), este es el
inmediatamente apuntado o referenciado. Para usar una variable local
con el mismo nombre, el programador debe antepone la palabra clave
this seguido por un punto.
 Identificadores importados: los identificadores usados dentro de un
método pero no definidos ni en la lista de parámetros como en una
definición local son globales para el método. Estos identificadores deben
ser definidos en la clase que los contiene.
 Los identificadores no pueden ser redefinidos: la regla para importar y
la regla que prohíbe redefiniciones toman sentido conjunto e indican que
si un identificador de una case está usada en un método, ese identificador
no puede subsecuentemente ser redefinido en el método.

Referencias
Patterson Hume, J. N., y Stephenson, C. (2000). Introduction to
programming in Java. Toronto: Holt Software Associates.

Descargado por AulaVirtual_Fundamen ([email protected])


lOMoARcPSD|7552446

Vivona, I. (2011). “Programación Orientada a Objetos” (pp.15-18) en


Vivona, I. “Java”. Buenos Airesto: Fox Andina; Dalaga. Encontrado en
http://goo.gl/5tGwCQ

Descargado por AulaVirtual_Fundamen ([email protected])

También podría gustarte