You are on page 1of 4

U.T.O. – F.N.I. ING. DE SISTEMAS – ING.

INFORMÁTICA

SIS – 2210 METODOLOGÍA DE LA PROGRAMACIÓN II


LABORATORIO # 5

TEMA: ENCAPSULAMIENTO

OBJETIVOS.

 Comprender los conceptos respectos al encapsulamiento y al ocultamiento de datos.


 Entender las dos funciones fundamentales: Interfaz e Implementación.
 Distinguir los tipos de encapsulamiento.

FUNDAMENTO TEORICO.

Página 1
El encapsulamiento, en el paradigma de la programación orientada a objetos y en este caso más
específico como lo es C++, consiste en no darle la oportunidad al usuario del programa, que modifique
atributos que le pertenecen a una clase en específica. Por ejemplo si tenemos una clase persona con
unos atributos como el nombre, la identificación, etc, de algún ciudadano entonces no nos interesa que
se modifiquen estos datos desde cualquier parte del programa ni que cualquier método fuera de la clase,
tenga acceso directamente a ellos (y además como una buena práctica de programación). Podemos
también darnos la idea como es la capsula de algún medicamento. No nos interesa que elementos lleva
por dentro solo interesa que nos sirve para curar alguna enfermedad. Pues es de este mismo modo que
actúa el encapsulamiento en C++, no nos interesa que atributos tiene la clase sino que estos nos sirven
para algún fin(por ejemplo como plantilla para almacenar alguna información de un tipo en específico).

En un objeto podemos distinguir dos aspectos bien diferenciados:

 Estado -----------> Propiedades


 Comportamiento ---> Métodos

En P.O.O. los datos y los procedimientos que los gestionan están relacionados explícitamente y se
"encapsulan" en un objeto. La especificación de las propiedades de un objeto y los métodos de acceso
se realiza en la declaración de la clase de la que se instancia el objeto.

Formas de encapsular

1. Estándar (Predeterminado)
2. Abierto: Hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase y
cualquier parte del programa.
3. Protegido: Solo es accesible desde la Clase y las clases que heredan (a cualquier nivel).
4. Semi_Cerrado: Solo es accesible desde la clase heredada.
5. Cerrado: Solo es accesible desde la Clase.

Página 2
ACTIVIDAD DE CLASE.

1. Ejercicio. Crear una clase que nos permita calcular el área de una capsula (formado por dos
semiesferas y un rectángulo), leer radio y lado.

2. Ejercicio. Declarar una clase Hora, con sus atributos hora, minuto, segundo y funciones miembro
para inicializar establecer la hora y mostrar la hora en formatos militar y estándar. Con este ejemplo
vamos a mostrar además el uso de los constructores

3. Ejercicio. Crea una clase llamada Libro que guarde la información de cada uno de los libros de una
biblioteca. La clase debe guardar el título del libro, autor, número de ejemplares del libro y número
de ejemplares prestados. La clase contendrá los siguientes métodos:
 Constructor por defecto.
 Constructor con parámetros.
 Métodos Setters/getters
 Método préstamo que incremente el atributo correspondiente cada vez que se realice un
préstamo del libro. No se podrán prestar libros de los que no queden ejemplares disponibles
para prestar. Devuelve true si se ha podido realizar la operación y false en caso contrario.
 Método devolución que decremente el atributo correspondiente cuando se produzca la
devolución de un libro. No se podrán devolver libros que no se hayan prestado. Devuelve true si
se ha podido realizar la operación y false en caso contrario.
 Método toString para mostrar los datos de los libros. Este método se heredada de Object y lo
debemos modificar (override) para adaptarlo a la clase Libro.

CUESTIONARIO.

1. ¿En qué consiste la composición y para qué se usa?

2. Una variable privada puede ser accedida desde (puede existir cero, una o varias opciones
correctas):
a) La clase desde la cual fue creada.
b) Una subclase de la clase desde la cual fue declarada.
c) Externamente, desde un objeto de la clase la cual fue declarada.

3.- ¿Cuándo es conveniente regular el acceso a una variable por medio de una propiedad?

4. ¿Cuáles son las diferencias principales entre clases y estructuras?

5. ¿Cuál es el nivel de acceso que se usa por defecto en miembros de clase sino se especifica lo
contrario?
Página 3
Página 4

You might also like