Object, Délégation, Structure simple, exception
Exercice 1 - Une bibliothèque
Une bibliothèque contient des livres.
Nous représenterons les bibliothèques par des objets instances
de la classe Library qu'il nous faudra écrire.
On trouvera en attribut de la classe un tableau de références
sur des instances de Book.
On définira dans la classe Library :
-
un attribut permettant de stocker un nombre maximum de livre
ainsi qu'un constructeur, qui prend en paramètre le nombre maximum
de livres que peut contenir la bibliothèque (sa capacité)
-
une méthode int capacity() retournant la capacité
de la bibliothèque
-
une méthode void add(Book b) qui ajoute un
livre dans la bibliothèque.
Que doit-on faire si la bibliothèque est pleine ?
-
Ecrire votre propre exception LibraryIsFull.
-
Ecrire un main créant une bibliothèque
permettant de stocker deux livres et ajouter trois livres
dans celle-ci.
Modifier votre main pour afficher dans le cas
ou la bilothèque est pleine le message suivant
"library is full".
-
On souhaite continuer à lever une exception dans add
mais éviter que l'utilisateur soit obligé
d'écrire un bloc try/catch dans le
main. Comment doit-on faire ?
Modifier la déclaration
de l'exception LibraryIsFull
et la déclaration de la méthode add
en conséquence.
-
une méthode int size() retournant
le nombre de livres contenus dans la bibliothèque
-
une méthode boolean contains(Book book),
indiquant si un livre est contenu ou non dans la bibliothèque
-
une méthode String toString(),
qui affiche l'ensemble des livres contenus dans la bibliothèque.
A quoi sert l'annotation java.lang.Override ?
Comment peut-on l'utiliser sur la méthode toString ?
Exercice 2 - Bibliothèque infinie
Ecrire la classe Library2 possédant
les mêmes méthodes que Library
mais dont la taille de la bibliothèque s'agrandie
à la demande.
Utiliser pour cela la classe java.util.ArrayList.
Expliquer la présence de warnings.
Rémi Forax - Université de Marne La Vallée