Page 1
JAVA : Relations entre classes « Gestion d’un zoo »
Un zoo souhaite pouvoir gérer l’ensemble de son parc animalier. Pour cela, il développe une application basée sur un langage de programmation objet. L’ensemble des classes à mettre en œuvre peut se schématiser grâce au diagramme UML suivant :
*
0..1 1..1
*
Espece -
- nom cri
: String : String +
+ +
<<Constructor>> Espece (String sonNom, String sonCri) getNom ()
getCri ()
: String : String Animal
- - -
nom age vivant
: String : int : boolean +
+ + + + + +
<<Constructor>> Animal (String sonNom, Espece sonEspece) getNom ()
estVivant () getEspece () toString () vieillir () mourrir ()
: String : bool ean : Espece : String : void
: void Zoo
- directeur : String +
+ +
<<Constructor>> Zoo () ajouterAnimal () nourrir ()
: void : ArrayList
1-Classe Espece :
Ecrivez la classe Espece munie des attributs et méthodes suivants : - Attributs privés :
nom qui désigne le nom de l’espèce (Oiseau, Lion etc…)
cri qui désigne le cri des animaux de l’espèce concernée ("Cui-cui", "Roar" etc…) - Méthodes publiques :
public Espece(String sonNom, String sonCri)
=> constructeur qui valorise le nom et le cri de l’espèce.
public getNom()
=> retourne le nom de l’espèce.
public getCri()
=> retourne le cri associé à l’espèce.
Ecrivez une classe GestionZoo avec une méthode main qui crée 3 espèces d’animaux et les affiche à l’écran (en utilisant les getteurs de la classe Espece)
Exemple de résultat à obtenir : C:>java GestionZoo Le cri du Lion est: roare
…/…
Page 2 2-Classe Animal :
Ecrivez la classe Animal munie des attributs et méthodes suivants : - Attributs privés :
nom : Chaîne => nom de l’animal age : Entier => age de l’animal
vivant : Booléen => désigne si l’animal est vivant ou non
Attention : Pour coder en Java la relation entre la classe Espece et la classe Animal, vous devez ajouter un attribut !
- Méthodes publiques :
public Animal(String sonNom, Espece sonEspece)
=> constructeur qui valorise le nom et l’espèce de l’animal public String getNom()
=> retourne le nom l’animal.
public boolean estVivant()
=> indique si l’animal est vivant.
public Espece getEspece()
=> retourne l’objet Espece associé à l’animal.
public String toString()
=> retourne le nom, le nom de l’espèce, le statut (vivant ou mort) ainsi que l’age (courant s’il est vivant, de décès s’il est mort) de l’animal.
public void vieillir()
=> fait vieillir l’animal d’un an s’il est vivant.
public void mourir()
=> fait mourir l’animal s’il était vivant.
Compéltez votre programme GestionZoo pour : - créer quelques animaux
- faire vieillir un animal d’un an - faire vieillir un animal de 4 ans - faire mourir un animal
- afficher les animaux à l’écran (en utilisant la méthode « toString »)
Exemple de résultat à obtenir : C:>java GestionZoo
…/…
Simba (Lion) : Vivant et age de 1 an(s) Coco (Oiseau) : Vivant et age de 4 an(s) Titi (Oiseau) : Vivant et age de 0 an(s) Bourriquet (Ane) : Mort a l'age de 0 an(s)
…/…
Page 3 3-Classe Zoo :
Ecrivez la classe Zoo munie des attributs et méthodes suivants : - Attributs privés :
directeur : Chaîne
Attention : Pour coder en Java la relation entre la classe Zoo et la classe Animal, vous devez ajouter un attribut !
- Méthodes publiques :
public Zoo(sonDirecteur : Chaîne)
=> constructeur qui valorise le nom de directeur
public void ajouterAnimal(nouvelAnimal : animal)
=> ajoute nouvelAnimal à la collection d’animaux du zoo public ArrayList nourrir()
=> retourne une collection contenant des chaînes de caractères. Chaque chaîne de caractères contient le nom de l’animal et le cri (de joie) qu’il a poussé lorsqu’on l’a nourri (Attention, les animaux morts ne crient pas et ne mangent pas).
Complétez votre programme GestionZoo pour : - créer un zoo
- faire entrer quelques animaux au zoo - nourrir les animaux
- afficher les cris de joie des animaux qu’ont poussé les animaux lors du repas