Ejercicio especial programación - Tema 4: Métodos
Ejercicio especial programación - Tema 4: Métodos
Descripción del negocio (Universo del discurso)
Queremos hacer un sistema de gestión de una biblioteca de libros.
Nuestra biblioteca tendrá colecciones.
Dentro de cada colección tendremos libros.
A nuestra biblioteca le podremos añadir y eliminar colecciones. Nuestra biblioteca tendrá un nombre, una dirección y un teléfono.
Las colecciones tendrán un nombre por ejemplo: “Colección de Quevedo” y pertenecerán a un género concreto. Los géneros podrán ser: “Drama”, “Poesía”, “Novela”, “Ciencia Ficción”, “Romántica”
A una colección le podremos dar de alta y baja libros. Un libro podrá pertenecer a varias colecciones.
De un libro queremos saber el nombre, el autor, año de escritura y a que colección pertenece.
Tarea -> Hacer un análisis del problema.
Diseño de la solución:
-Queremos poder crear un libro de las siguientes maneras:
Book (String nombre, String autor, int anno)
Book (String nombre, String autor)
(Si no se sabe el año se pondrá por defecto 0)
Book (String nombre)
(Si no se sabe el año se pondrá por defecto 0, si no se sabe el autor se pondrá “anónimo”)
-Queremos poder crear colecciones de la siguiente manera:
BookCollection(String nombre, Genero genero)
BookCollection(Genero genero)
(Si no se sabe el nombre de la colección se pondrá “una colección”).
-No se puede añadir un mismo libro a una colección dos veces.
-Al añadir un libro a una colección debemos devolver True o False si se ha realizado con éxito.
-Al eliminar un libro de una colección debemos devolver True o False si se ha realizado con éxito.
-Todas las clases tendrán un método toString("")
-La clase Book, devolverá todos los datos del libro.
-La clase BookCollection, devolverá el nombre de la colección, el género y un listado de todos los libros.
-La clase Library, devolverá los datos de la biblioteca.
Implementación:
A programar en JAVA!!!!
Pruebas:
Cree una clase BibliotecaTest.java con el método "main" para probar el sistema.
Deberá:
Crear una biblioteca,
Crear al menos 3 colecciones usando distintos constructores,
Crear al menos 10 libros usando distintos constructores,
Añadirlos a las colecciones,
Eliminarlos de las colecciones.
Ampliación para el Tema 5:
Punto 1:
En la clase BookCollection, cuando se quiera añadir un libro cuyo nombre sea igual a alguno que pertenezca a esa colección se deberá lanzar una excepción del tipo "IllegalArgumentException" explicando el problema encontrado.
Capturar dicha excepción en nuestro código cliente (clase de pruebas) y mostrar un mensaje de error por la consola explicando el problema.
Pruebas:
Crear una biblioteca,
Crear (al menos) 2 colecciones,
Crear (al menos) 5 libros. 2 de ellos con el mismo nombre, por ejemplo, "El Quijote".
Probar a añadir a una colección los dos libros con el mismo nombre, capturando la excepción y sin capturarla con un Try - catch.
Punto 2:
Sobreescribir el método "AddBook (String nombre, String autor, int anno)." (crear un método nuevo pero distintos parámetros de entrada) de la clase "BookCollection", donde pasemos los datos de un libro.
Este método creará un libro con los datos y lo añadirán a la colección. Pero si ya existe un libro con ese nombre, entonces lanzaremos una excepción del tipo "LibroExistenteException". Para ello tendremos que crear una nueva excepción con una clase nueva "LibroExistenteException" que herede de la clase "Exception", ver ejemplo en la web.
Para hacer este método, se tendrá que reuitilizar todo el código que hicimos para el punto 2 y NO PROGRAMAR NADA NUEVO
Pruebas:
Crear una biblioteca,
Crear (al menos) 2 colecciones,
Crear (al menos) 5 libros. 2 de ellos con el mismo nombre, por ejemplo, "El Quijote". Usando el método AddBook (String nombre, String autor, int anno)
Probar capturando la excepción y sin capturarla con un Try - catch.