Date de première publication : 2026/09/30
Dans ce TP, nous voulons illustrer les notions vues dans le dernier cours magistral.
On veut créer un logiciel pour une animalerie qui place les animaux en vente dans des enclos.
Créer les classes Animal, Chat, Chien et Nourriture.
Premier enclos
- Créer la classe
Enclosqui peut contenir au plusMAXéléments avec un tableau d'Object. On peut ajouter ou enlever des éléments (le dernier placé dans l'enclos par exemple) et on peut lister les élements de l'enclos. - Ajouter à un enclos un chien, un chat, de la nourriture et terminer par un chat
- Afficher le contenu de l'enclos
- Enlever le dernier élément de l'enclos, le faire
crier!
Deuxième enclos
- Écrire une nouvelle classe
Enclos2qui au lieu de stocker desObjectstocke desAnimal(sans faute de français :-) !) - Ajouter quelques animaux et terminer par un
Chat - Que se passe-t-il lorsque l'on essaie d'ajouter de la nourriture ?
- Est-il facile de faire crier le dernier animal placé dans l'enclos ?
- Est-il facile de faire ronronner() le chat ?
Troisième enclos
Écrire maintenant une classe générique Enclos3 qui est paramétré sur le classe des éléments de la caisse.
class Enclos3<A> {
}
Il y a une petite subtitilité pour la construction du tableau qui est donnée ci-dessous :
@SuppressWarnings("unchecked")
public Enclos3() {
// on ne peut pas créer directement un tableau de A[]
tab = (A[]) new Object[MAX];
elem = 0;
}
Il est de bon ton de connaître le message d'erreur qui peut apparaitre le cas échéant
- Instancier cet enclos sur la classe
Animal, ajouter nourriture, chien et chat et faire crier le dernier élément ajouté. - Instancier cet enclos sur la classe
Chat, ajouter chien et chat et faire crier le dernier élément ajouté. - Instancier un enclos sur des
intet voir ce que cela donne.
Enclos exceptionnel
Vous pouvez créer trois exceptions :
EnclosPleinException qui est levée quand on essaie de mettre un animal
dans un enclos et que celui-ci est déjà plein,IncompatibleException quand on essaie de mettre un animal qui n'est pas de même type
que le premier animal placé en cage et
OperationImpossibleException quand on essaie d'enlever quelque chose à l'enclos et que cela n'est pas possible.Bien entendu, il faut tester le code pour vérifier que les exceptions sont bien lancées et surtout bien attrapées. Vous pouvez utiliser JUnit pour cela ou une simple méthode main()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8



