21/01/06

 

JAVA  TP n° 6 corrigé : Relations entre classes
 « Gestion d’un zoo »

 

 

public class Espece {

 

private String nom;

private String cri;

 

public Espece(String sonNom, String sonCri) {

         this.nom = sonNom;

         this.cri = sonCri;

}

 

public String getNom() {

         return this.nom;

}

 

public String getCri() {

         return this.cri;

}

}

 

public class Animal {

 

        String nom;

        boolean vivant;

        int age;

        Espece espece;

 

     Animal(String sonNom, Espece sonEspece) {

             nom = sonNom;

             vivant = true;

             age = 0;

             this.espece = sonEspece;

        }

 

        public String getNom() {

             return this.nom;

        }

 

        public Espece getEspece() {

             return this.espece;

        }

 

        public boolean estVivant() {

             return this.vivant;

        }

 

        public void vieillir() {

             if (vivant == true) {

                this.age += 1;

             }

        }

 

        public String toString() {

             if (vivant == true) {

                   return nom+" ("+espece.getNom()+") : Vivant et age de "+age+" an(s)";

             }

             else {

                   return nom+" ("+espece.getNom()+") : Mort a l'age de "+age+" an(s)";

             }

 

        }

 

        public void mourir() {

             if (vivant == true) {

                   vivant = false;

             }

        }

}

 

 


 

import java.util.*;

 

class Zoo {

private String directeur;

private ArrayList animaux;

 

public Zoo (String nouveauDirecteur) {

         this.directeur = nouveauDirecteur;

         this.animaux = new ArrayList();

}

 

public void ajouterAnimal (Animal nouvelAnimal) {

         this.animaux.add(nouvelAnimal);

}

 

public ArrayList nourrir() {

         ArrayList cris = new ArrayList();

         for (int i=0; i < this.animaux.size() ; i++) {

                  Animal animalCourant = (Animal)(animaux.get(i));

                  if (animalCourant.estVivant()){

                           String cri="nourrir "+(animalCourant.getNom())+" "+(animalCourant.getEspece().getCri());

                           cris.add(cri);

                  }

         }

         return cris;

}}

 

import java.util.*;

 

public class GestionZoo {

public static void main(String[] args) {

 

         Espece lion = new Espece("Lion", "roar");

         Espece oiseau = new Espece("Oiseau", "cui-cui");

         Espece ane = new Espece ("Ane", "hi-han");

 

         String text = "Le cri du "+lion.getNom()+" est: "+lion.getCri();

         System.out.println(text);

 

         Animal simba = new Animal("Simba", lion);

         Animal coco  = new Animal("Coco", oiseau);

         Animal titi  = new Animal("Titi", oiseau);

         Animal bourriquet = new Animal("Bourriquet", ane);

 

         simba.vieillir();

         for (int i=0; i<4;i++) {

                  coco.vieillir();

         }

         bourriquet.mourir();

 

         System.out.println(simba.toString());

         System.out.println(coco. toString());

         System.out.println(titi. toString());

         System.out.println(bourriquet. toString());

 

         Zoo daktari = new Zoo("James");

 

         daktari.ajouterAnimal(simba);

         daktari.ajouterAnimal(coco);

         daktari.ajouterAnimal(bourriquet);

 

         ArrayList cris = daktari.nourrir();

         for (int i=0; i< cris.size() ; i++){

                  System.out.println(cris.get(i));

         }

}}