Вы находитесь на странице: 1из 4

Programación Orientada a Objetos 1 UNSCH

GUÍA DE LABORATORIO Nº 4
“Encapsulamiento II”

1. OBJETIVOS

1.1. Comprender el principio de encapsulamiento dentro de la POO.


1.2. Comprender e implementar las tres características de un encapsulamiento eficaz
(abstracción, ocultamiento de la implementación y división de la
responsabilidad).

2. INFORME PREVIO

 Encapsulamiento.
 Abstracción.
 Ocultamiento de la implementación.
 División de la responsabilidad.

3. DESARROLLO TEÓRICO

¡Video Encapsulamiento!

Encapsulamiento.
El encapsulamiento permite dividir un programa en componentes más pequeños e
independientes. Cada componente es autónomo y realiza su labor
independientemente de los demás componentes.
EL encapsulamiento mantiene esta independencia ocultando los detalles internos
(implementación) de cada componente, mediante una interfaz externa.
Es la característica de autonomía de la POO. Esta característica permite generar
componentes autónomos de software tomando una parte de funcionalidad y
ocultando los detalles de la implementación al mundo exterior.

Abstracción.
La abstracción es el proceso de simplificar un problema complejo. Al abordar la
solución de un problema, no se abruma con cada uno de los detalles. Más bien, lo
simplifica enfocándose tan sólo en los aspectos relevantes para la solución.
La abstracción tiene dos beneficios. Primero permite resolver un problema
fácilmente y lo más importante es que colabora con la reutilización.

Ocultamiento de la implementación.
El ocultamiento de la implementación presenta dos beneficios:

- Protege a su objeto de los usuarios.


- Protege a sus usuarios del objeto.

Protegiendo a los usuarios del objeto. El ocultamiento de la implementación


conduce a un diseño más flexible porque evita que los usuarios del objeto
dependan estrechamente de la implementación que sustenta al objeto. El

Mg. Ing. Manuel A. Lagos Barzola


Programación Orientada a Objetos 2 UNSCH

ocultamiento de la implementación fomenta la creación de código moderadamente


ligado al objeto.
Cuando una característica aparece en la interfaz pública de un objeto, cualquiera
que utilice dicha característica se vuelve dependiente de ésta. Si la característica
desaparece súbitamente, usted tendrá que cambiar el código que dependía de ese
comportamiento o atributo.
La dependencia no se puede eliminar totalmente. Esta dependencia se reduce
mediante la programación de una interfaz bien definida. Los usuarios dependerán
tan sólo de lo que usted decida colocar en la interfaz. No obstante, si parte de la
implementación del objeto se incorpora a la interfaz, los usuarios del objeto se
volverán dependientes de esa implementación.
Una pequeña modificación a la implementación del objeto requerirá una cascada de
cambios en todos los usuarios del objeto.
El código estrechamente ligado choca con el propósito del encapsulamiento: crear
objetos independientes y reutilizables.

División de la responsabilidad: ocúpese de sus propios asuntos.


El ocultamiento del código es sólo un paso hacia la escritura de código
moderadamente desligado.
Si deseamos contar con código moderadamente desligado, también se debe contar
con la división desligada de la responsabilidad.
El objeto debe realizar una función - su responsabilidad y hacerla bien.
Si dos objetos comienzan a realizar la misma labor, es señal de que no existe una
división apropiada de la responsabilidad.

4. DESARROLLO DE LA PRÁCTICA

¡Protegiendo a los usuarios de nuestros objetos!

4.1. Realice una captura de pantalla de cada procedimiento y actividad realizada.


4.2. Cree un nuevo proyecto denominado “ProyectoEncapsulamientoII”.
4.3. Cree enseguida el paquete “beans”.
4.4. Dentro del paquete creado, defina la clase “Artículo”.
Agregue los siguientes atributos privados:
- Id
- descripcion
- precioUnitario
- descuento
- cantidad

4.5. Defina el método getTotalAjustado() dentro de la clase Artículo. Este método


debería realizar los siguientes cálculos:

- total =precioUnitario * cantidad


- descuentoTotal = total * descuento

Mg. Ing. Manuel A. Lagos Barzola


Programación Orientada a Objetos 3 UNSCH

- totalAjustado = total – descuentoTotal

Finalmente el método debe devolver el “totalAjustado”.

4.6. Dentro del paquete creado, defina la clase “Cliente”.


Agregue los siguientes atributos privados:
- id
- nombres
- dirección
- celular

Agregue el atributo público:


- listaArticulos (arreglo de artículos, este atributo contendrá los artículos
seleccionados por un cliente)

4.7. Cree los métodos constructores, accesores y mutadores para las clases creadas.
4.8. Cree una clase principal “UsuarioPrimero”. En el método principal cree cinco
objetos de la clase Artículo, un objeto de la clase Cliente.
4.9. En seguida agregue el código para que el cliente pueda seleccionar tres artículos
de la lista de cinco que le es mostrado por el programa (datos de los cinco
artículos creados previamente).
El programa debe agregar los artículos seleccionados por el cliente a su
correspondiente atributo “listaArticulos”.
4.10. Ahora agregue el código respectivo para que se calcule el total a pagar por los
artículos seleccionados por el cliente e imprima el resultado por pantalla.
4.11. Cree una clase principal “UsuarioSegundo”. En el método principal cree tres
objetos de la clase Artículo, un objeto de la clase Cliente.
4.12. En seguida agregue el código para que el cliente pueda seleccionar dos
artículos de la lista de tres que le es mostrado por el programa (datos de los
tres artículos creados previamente).
4.13. El programa debe agregar los artículos seleccionados por el cliente a su
correspondiente atributo “listaArticulos”.
4.14. Ahora agregue el código respectivo para que se calcule el total a pagar por los
artículos seleccionados por el cliente e imprima el resultado por pantalla.

4.15. Imagine ahora que desea modificar el modo como los clientes gestionan sus
productos y ahora ya no los hace a través de su atributo “listaArticulos” sino
mas bien ahora utiliza una clase “Canasta” donde va agregando sus artículos
seleccionados (la clase “Canasta” debe ser capaz de registrar los artículos
seleccionados por el cliente).
Modifique el programa realizando los cambios mencionados en todas las clases
necesarias.

4.16. Realice un análisis de lo sucedido cuando se realizaron los cambios. Indique


qué modificaciones se tendrían que realizarse para evitar el código tan
estrechamente ligado que perjudica el encapsulamiento y por ende la creación
de objetos independientes y reutilizables.

Mg. Ing. Manuel A. Lagos Barzola


Programación Orientada a Objetos 4 UNSCH

Dividiendo la responsabilidad: ocúpese de sus propios asuntos.

4.17. Dentro del paquete creado, defina la clase “ArticuloBasico”.


4.18. Agregue los siguientes atributos públicos:
- id
- descripcion
- precioUnitario
- descuento
- cantidad

4.19. Cree un constructor para inicializar los atributos: id, descripcion, precioUnitario,
4.20. cantidad) dentro de la clase “ArticuloBasico”. Este constructor debe verificar
que el atributo cantidad de un objeto sea mayor o igual que cero, en caso
contrario debería inicializar este atributo en cero.
4.21. Defina también los otros métodos accesores y mutadores de la clase.
4.22. Cree una clase principal “UsuarioArticuloBasico”. En el método principal cree
dos objetos de la clase ArtículoBasico, y para cada uno, asígnele un respectivo
descuento, calcule el sub total a pagar por la leche (precioUnitario*cantidad),
calcule el descuentoTotal(descuento*total) y el totalAjustado (total –
descuentoTotal. Debe mostrar finalmente el neto a pagar(suma de totales
ajustados) por ambas leches.

4.23. Realice un análisis de lo sucedido en el punto 4.22. Indique qué es lo que se


podría mejorar en este código, qué está bien y qué estaría mal e iría en contra
del encapsulamiento.

5. CUESTIONARIO

Elabore un ejemplo parecido a los mostrados en la práctica.

6. CONCLUSIONES

7. RECOMENDACIONES

8. BIBLIOGRAFÍA

Aprendiendo programacion orientada a objetos en 21 lecciones avanzadas . Anthony


Sintes.

Mg. Ing. Manuel A. Lagos Barzola

Вам также может понравиться