Commit bb2adff6 authored by bonnabab's avatar bonnabab
Browse files

tp4 enfzants

parent 99ce2a76
......@@ -2,9 +2,7 @@ public abstract class Animal{
private String nom;
private double poids;
private Regime regime;
private LinkedList<Animal> animaux;
private Animal pere;
private Animal mere;
private List<Animal> animaux;
public Animal(String nom,double p, Regime r){
......@@ -18,9 +16,13 @@ public abstract class Animal{
this.nom=nom;
this.poids=p;
this.regime=r;
this.pere=pere;
this.mere=mere;
enfants = new LinkedList<Animal>();
this.enfants = new LinkedList<Animal>();
pere.addEnfants(this);
mere.addEnfants(this);
}
private void addEnfants(Animal a){
animaux.add(a);
}
public String getNom(){
......
......@@ -5,17 +5,19 @@ import java.util.*;
* Un zoo a un nom, et peut contenir un nombre quelconque d'animaux.
* On peut : ajouter un nouvel animal, récupérer le nombre d'animaux, calculer le cout de nourriture
* total, récupérer une chaine de caractères représentant l'état du Zoo.
* QUESTION : Pq un arraylist est en o(1)
* QUESTION : Obliger de déclarer crier() en abstract dans animal ? On aurait pu la définir juste dans chaque animal ?
* QUESTION : Implanter naissance
*/public class Zoo {
private String nom;
private LinkedList<Animal> animaux;
Map<String,Animal> mapDesAnimaux;
/** Construit le zoo de nom name, initialement vide */
public Zoo(String name) {
nom=name;
animaux = new LinkedList<Animal>();
mapDesAnimaux = new HashMap<String,Animal>();
}
public Animal getAnimal(String name){
......@@ -41,10 +43,11 @@ import java.util.*;
/** Ajoute l'animal a au zoo */
public void ajoute(Animal a) {
if (getAnimal(a.nom)!=null){
if (mapDesAnimaux.containsKey(a.getNom())){
throw new IllegalArgumentException("Ce nom d'animal est déjà dans le zoo");
}
animaux.add(a);
mapDesAnimaux.put(a.getNom(),a);
}
/** Retourne le nombre d'animaux contenu dans le zoo */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment