PROGRAMACIÓN ORIENTADA A OBJETOS

Anuncio
PROGRAMACION ORIENTADA A OBJETOS
Departamento de Ciencias de la Computación
Universidad Nacional del Sur
PROGRAMACIÓN ORIENTADA A OBJETOS
Practico N° 6
10,11,12
GENERICIDAD - ASERCIONES - EXCEPCIONES
Ejercicio 1 : Implemente en lenguaje de diseño la clase Contador20, que permita contar del
1 al 20 únicamente, con operaciones para incrementar, y decrementar el contador, ver el
valor del contador e inicializarlo. Incluya para cada uno de los servicios las precondiciones
(requiere) y postcondiciones (asegura) necesarias.
Ejercicio 2 : Implemente en lenguaje de diseño la clase genérica Pila, con todas las
operaciones necesarias, e incluya para cada uno de los servicios las precondiciones y
postcondiciones necesarias.
Ejercicio 3 : Implemente en lenguaje de diseño la clase genérica Cola, con todas las
operaciones necesarias, e incluya para cada uno de los servicios las precondiciones y
postcondiciones necesarias.
Ejercicio 4: Enuncie un ejemplo en el cual debe escribirse una clase genérica, pero con
ciertas condiciones sobre los posibles parámetros genéricos actuales. ¿Cómo se denomina
este tipo de genericidad?.
Ejercicio 5: Indique cuál es el error en la siguiente clase, donde la primer operación es
pública y la segunda privada:
Elecciones
Padron: Lista[Personas]
...
<<comandos>>
requiere
{EstaEnPadron (G) = Verdadero}
Indicar_que_votó (G: Persona)
...
<<consultas>>
{} EstaEnPadron(G:Persona):boolean
Ejercicio 6: Indique si las siguientes afirmaciones son verdaderas o falsas, justificando su
respuesta:
a) Es correcto utilizar aserciones para chequear condiciones sobre los argumentos de una
operación pública.
b) Si todas las operaciones poseen una precondición C, entonces C debe formar parte del
invariante de clase
c) Si el invariante de una clase es C, entonces ninguna operación puede poseer la
precondición (not C)
d) Una operación con precondiciones y postcondiciones no puede violar el invariante de
clase en ningún momento de su ejecución
Para los siguientes ejercicios de excepciones utilice las cláusulas rescue y retry.
Ejercicio 7: Suponga que cuenta con la operacion “leer_un_entero(n)”, que permite
leer un número entero ingresado por teclado. Cuando se ingresa algo que no sea un entero,
la función dispara una excepción. Escriba un servicio que utilizando esta operación, solicite el
ingreso de un entero tantas veces como sea necesario.
Ejercicio 8: Modifique el ejercicio anterior para que solicite la lectura de un número entero
no más de 5 veces.
Ejercicio 9: Escriba una servicio que permita ingresar dos numeros enteros, y mostrar el
resultado de la división entre ellos. El servicio debe mostrar un mensaje cuando no se
ingresa un entero, y mostrar un mensaje cuando se intenta dividir por cero.
PROGRAMACION ORIENTADA A OBJETOS
Departamento de Ciencias de la Computación
Universidad Nacional del Sur
Ejercicio 10: Suponga que debe realizarse una operación determinada, de dos formas
diferentes, utilizando los procedimientos Accion1 y Accion2. La primera vez, debe
intentarse la Accion1. Si esta falla, debe realizarse la Accion2. Escriba un servicio que
permita realizar esta tarea utilizando excepciones. Si fallan las dos operaciones debe fallar
entonces este sevicio.
Excepciones en Java
Ejercicio 11: ¿Puede haber en Java una sentencia try sin su correspondiente catch?
Ejercicio 12: ¿Debe una excepción en Java ser capturada en el mismo bloque try-catch
que la generó?. Si responde que no, busque un ejemplo que justifique su respuesta.
Ejercicio 13: ¿Hay algo incorrecto en esta declaración de manejo de excepciones?
... }
catch (Exception e)
{ ... }
catch (ArithmeticException a) { ... }
Descargar