Copy of https://perso.isima.fr/loic/java/tp_06.php
tete du loic

 Loïc YON [KIUX]

  • Enseignant-chercheur
  • Référent Formation Continue
  • Responsable des contrats pros ingénieur
  • Référent entrepreneuriat
  • Responsable de la filière F2 ingénieur
  • Secouriste Sauveteur du Travail
mail
loic.yon@isima.fr
phone
(+33 / 0) 4 73 40 50 42
location_on
Institut d'informatique ISIMA
  • twitter
  • linkedin
  • viadeo

local_cafe Sixti local_cafe

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

Deuxième enclos

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

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()