:: Enseignements :: Licence :: L3 :: 2013-2014 :: Programmation Objet avec Java ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) |
TP notée - Licence 3
|
Rappel, vous devez utiliser eclipse-lambda, configurer le JRE pour qu'il pointe
sur /usr/local/apps/Java8 et le compilateur pour utiliser la version 1.8.
Enfin, vous devez configurer le workspace d'eclipse (File > Switch WorkSpace) pour
qu'il corresponde au répertoire EXAM que vous avez dans le home
de votre session de TP noté.
Exercice 1 - Zoo
On souhaite modéliser un zoo composé d'animaux herbivore ou carnivore.
-
Créer une classe Animal (dans le package fr.umlv.tpnote)
qui représente un animal avec un champs carnivore qui indique
si l'animal est carnivore ou non
et un champs weight qui correspond au poids de l'animal
(en kg en utilisant un nombre à virgule flottante).
Ecrire le constructeur permettant d'initialiser les deux champs.
-
Ecrire la méthode habituelle permettant d'afficher un animal.
-
Pour tester le code que vous avez écrit précédemment.
Ecrire une métode main dans une classe Main
(dans le package fr.umlv.tpnote.main)
et créer et afficher un animal carnivore et un animal herbivore.
-
Ecrire une classe Zoo contenant des animaux.
On utilisera une ArrayList pour stocker les animaux.
-
Ecrire dans la classe Zoo une méthode add
qui permet d'ajouter un animal au Zoo ainsi qu'une
méthode isEmpty qui renvoie vrai si le zoo est vide.
Que doit-il se passer si on appele add avec null
comme argument ?
Vérifier que votre code implante le bon comportement.
-
Ecrire la méthode d'affichage usuelle pour afficher tous les animaux du zoo
(en affichant un animal par ligne)
Attention, ce que le code soit efficace.
-
Ecrire une méthode remove permettant de retirer
un animal du Zoo si celui-ci est dans le Zoo.
Attention, vérifier que le code suivant fonctionne.
Animal animal = new Animal(false, 300);
Zoo zoo = new Zoo();
zoo.add(animal);
zoo.remove(new Animal(false, 300));
zoo.isEmpty() // true
-
Sachant qu'un carnivore à besoin du quart de son poids en viande
par semaine. Ecrire une méthode getMeatForAWeek
dans Zoo qui renvoie la quantité de viande nécessaire
pour nourrir les animaux du Zoo pour une semaine.
-
Les animaux doivent être soignés, il existe deux types de soins,
les soins des dents nécessaire pour les carnivores uniquement
et les soins des pieds nécessaire pour tous les animaux de plus
de 200 kg.
Ecrire une énumération Care avec les valeurs
TEETH et FEET correspondant aux soins des
dents et des pieds.
Ecrire une méthode dans getAnimalsForCare(Care care)
dans la classe Zoo qui prend un soin en paramètre
et renvoie la liste des animaux qui ont besoin de ce soin.
Exercice 2 - Animaux Stars
Les zoos pour pouvoir attirer des clients utilisent des animaux stars,
contrairement aux animaux normaux, les animaux stars ont un nom
et pour les carnivores un régime alimentaire nécessitant la
moitié de leur poids en viande. De plus, un animal star
nécessite tous les soins disponibles.
-
En utilisant l'héritage, écrire la classe AnimalStar ainsi que son constructeur.
-
Vérifier que la méthode remove de la classe Zoo fonctionne
sur un animal star, sinon faites les changements qui s'imposent.
-
Vérifier que la méthode getMeatForAWeek marche si il y a des animaux stars
dans le zoo.
-
Vérifier que la méthode getAnimalsForCare marche si il y a des animaux stars
dans le zoo.
-
Ecrire dans la classe Zoo une méthode List<StarAnimal> getStarAnimals()
qui renvoie la liste des animaux stars .
-
Ecrire dans la classe Zoo une méthode getAnimalsForAllCare() qui
marche de la même façon que getAnimalsForCare mais qui peut prendre en paramètre
plusieurs soins différents séparés par des virgules.
© Université de Marne-la-Vallée