Ejercicios de Programación Orientada a Objetos en Java

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,82 KB

Ejercicio 1: Herencia y Polimorfismo

Escribir un programa de prueba donde se utilicen objetos de tipo Cuenta y Prestamo. Una cuenta mantiene un saldo, y cada cierto tiempo se le aplica el interés a ese saldo. Es posible hacer ingresos y reintegros. Un préstamo tiene un número de cuotas total, un saldo y un interés, y el importe de cada cuota se calcula aplicando el interés al importe total, y dividiendo entonces por el número de cuotas. Las cuentas y préstamos como productos financieros que son, tienen dos características comunes: el saldo y el interés.

  • Crea una clase que albergue esta funcionalidad común, y las dos clases Cuenta y Prestamo como subclases de la misma.
  • Crea una cuenta con un tipo de interés del 5% y saldo 200, y haz dos ingresos.
  • Crea un préstamo de 10000 EUR, 10% de interés, y 12 cuotas, haz dos amortizaciones.
  • ¿Qué debe suceder al tratar de retirar más dinero que el que hay en la cuenta?

Ejercicio 2: Herencia y Redefinición de Métodos

Una nueva política del banco obliga a cobrar una comisión del 0.5% del importe retirado con cada reintegro. Crea la clase CuentaComisionReintegro, subclase de la clase Cuenta del ejercicio anterior, para que, cuando se haga un reintegro, aplique la comisión correspondiente. ¿Tiene sentido utilizar super en reintegra()?

Ejercicio 3: Composición

Crea la clase Empleado, que guarda un nombre y un salario. Los empleados deben tener una cuenta asociada donde ingresar el salario. Obligatoriamente, cuando se crea un objeto Empleado es necesario pasarle un objeto Cuenta (puedes tomarla del ejercicio 1). Crea el método ingresaSalario(), que realiza el ingreso en la cuenta del salario del Empleado.

Ejercicio 4: Excepciones

Modifica el primer ejercicio, creando una clase excepción específica llamada SaldoInsuficienteException, que se lanzará en lugar de Exception en el caso de que no haya suficiente saldo al realizar un reintegro.

Ejercicio 5: Colecciones

El sistema financiero del banco del ejercicio 1, llamado BanControl, necesita llevar una lista de los productos financieros para cada persona. Así, cada clase Registro guardará el DNI de la persona, y un vector con sus productos financieros. Por ejemplo, la persona con DNI 12345678X podría tener asignados un préstamo de 20000 EUR a 36 meses con el 7% de interés, una cuenta de ahorro con el 0.04% de interés, y una cuenta vivienda con el 8% de interés.

Ejercicio 6: Herencia y Método toString()

Implementa la clase Persona, que contenga al menos un atributo DNI y disponga de un constructor parametrizado. A partir de ella, define la clase Alumno, conteniendo al menos un atributo planEstudios y un constructor parametrizado, y la clase Profesor, conteniendo al menos un atributo despacho, y otro asignatura, además de su constructor parametrizado. Crea el método toString() para cada clase.

Ejercicio 7: Clases e Instancias

Define las clases Hora y Fecha, e implementa constructores adecuados que reciban la información necesaria de entrada. Define la clase Reunion que contenga entre sus datos dos variables de las clases anteriores. Implementa el constructor de la clase. Extiende la clase Reunion con una clase ReunionPeriodica, donde se añada la frecuencia en la que tiene lugar la reunión. Implementar un constructor adecuado, que reciba los parámetros necesarios incluyendo la frecuencia de la reunión.

Ejercicio 8: Creación de una Clase Simple

Crea la clase Tripla, que es capaz de albergar exactamente tres valores de cualquier tipo. Crea un código simple de ejemplo que utilice la clase.

Ejercicio 9: Funciones Recursivas

Crea la función fibo(n), que devuelve n elementos de la sucesión de Fibonacci (esta sucesión es infinita). La sucesión de Fibonacci empieza en 0,1, y el resto de elementos son la suma de los dos anteriores. Para n == 0, devolverá la lista vacía, para n == 1 devolverá [0], para n == 2 devolverá [0, 1], para n == 3 devolverá [0, 1, 1], para n == 4 [0, 1, 1, 2], y así sucesivamente.

Sucesión de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

Ejercicio 10: Bucles y Listas

Crea un programa que pida un primer número entero n, y un segundo número entero m, y visualice una lista de números múltiplos de m desde 1 hasta n. La estructura obligatoria del programa se muestra a continuación.

Ejercicio 11: Creación de una Clase de Cadena

Crea la clase Cadena, que emulará a la clase String en el sentido de que permitirá almacenar cadenas de caracteres. Sea c un carácter e i un índice, debe ofrecer los métodos get(i), set(i, c), inserta(c), borra(i), inserta(i, c) y toString().

Ejercicio 12: Implementación de un Diccionario

Crea la clase Diccionario<>, que emulará a la clase HashMap<> de la librería estándar. Así, si K k es una palabra, y V v una definición, Diccionario<K, V> deberá ofrecer los siguientes métodos: get(k), que devuelve la lista de definiciones de la palabra K (o null, si no existe); put(k, v), que inserta una nueva asociación (K k, V v), controlando que no exista previamente ese par (k,v); clear(k), que elimina todas las definiciones de la palabra k; isEmpty(), que devuelve true cuando el diccionario está vacío; y toString(), que devuelve una versión textual de lo almacenado en el objeto Diccionario.

Ejercicio 13: Gestión de Temperaturas por Ciudad

Crea la clase ListaTemperaturas, que es capaz de albergar un número arbitrario de temperaturas (la temperatura un número real), asociadas a ciudades. Sea c una cadena con el nombre de una ciudad, y t un número real que representa una temperatura, la clase debe ofrecer al menos los métodos: inserta(c, t), get(c), getCiudades(), y toString(), de forma que se pueda insertar una ciudad y su temperatura (en caso de que ya exista la ciudad se actualizará su temperatura); obtener una temperatura dada la ciudad; obtener una lista de las ciudades introducidas; y finalmente una cadena de texto en forma de listado de todas las ciudades con sus temperaturas. Un ejemplo de uso se muestra a continuación.

Entradas relacionadas: