NFA032 : annale première session 2016 semestre 1 (12/02/2016)

Modérateurs : F. Barthélemy, eric.soutil

Verrouillé
achabe
Messages : 21
Inscription : 20 oct. 2016 18:09

NFA032 : annale première session 2016 semestre 1 (12/02/2016)

Message par achabe » 05 avr. 2017 11:42

Bonjour,

Pour l'exercice 4, je propose les solutions suivantes, inspirées de l'exercice 4 des annales de la seconde session semestre 1 (04/2016). Je souhaitais savoir ce que vous en pensiez svp.

Question 1

Code : Tout sélectionner

public class Animal{
	String nom;
	boolean vivant = true;
	
	public Animal(String n){nom=n;}
	
	public void meurt(){vivant = false;}
}

public class Carnivore extends Animal{
	
	public Carnivore(String n){super(n);}
	
	public void mange(Herbivore h){h.estIngere();}
}

interface Nourriture{
	void estIngere();
}

public class Herbivore extends Animal implements Nourriture{
	public Herbivore(String n){super(n);}
	
	public void estIngere(){meurt();}
	
	public void mange(Legume l){l.estIngere();}
}

public class Legume implements Nourriture{
	String nom;
	
	public Legume(String n){nom = n;}
	
	public void estIngere(){}
}
Question 2

Code : Tout sélectionner

Animal loup = new Carnivore("loup");
Animal lapin = new Herbivore("lapin");
loup.mange(lapin);
Question 3

Code : Tout sélectionner

interface Nourriture{
	void estIngere();
	boolean estEmpoisonne();
}

public class Legume implements Nourriture{
	String nom;
	boolean empoisonne;
	
	public Legume(String n, boolean poison){
		nom = n;
		empoisonne = poison;
	}
	
	public void estIngere(){}
	
	public boolean estEmpoisonne(){return empoisonne;}
}

public class Herbivore extends Animal implements Nourriture{
	boolean empoisonne = false;
	
	public Herbivore(String n){super(n);}
	
	public void estIngere(){meurt();}
	
	public void mange(Legume l){
		l.estIngere();
		if (l.estEmpoisonne()){
			empoisonne = true;
			meurt();
		}
	}
	
	public boolean estEmpoisonne(){return empoisonne;}
}

public class Carnivore extends Animal{
	
	public Carnivore(String n){super(n);}
	
	public void mange(Herbivore h){
		h.estIngere();
		if (h.estEmpoisonne())
			meurt();
	}
}
Question 4

Code : Tout sélectionner

public class Charognard extends Carnivore{
	
	public Charognard(String n){super(n);}
	
	public void mange(Herbivore h){
		if (h.vivant == false){
			h.estIngere();
			if (h.estEmpoisonne())
				meurt();
		}
	}
}

public class Carnassier extends Carnivore{
	
	public Carnassier(String n){super(n);}
	
	public void mange(Herbivore h){
		if (h.vivant){
			h.estIngere();
			if (h.estEmpoisonne())
				meurt();
		}
	}
}

Verrouillé

Qui est en ligne ?

Utilisateurs parcourant ce forum : Bing [Bot] et 1 invité