interface DomaineACle{
Object getCle();
void print();
}
class Sdd{
DomaineACle[] tab = new DomaineACle[100];
int nb = 0;
void ajouter(DomaineACle o){
tab[nb] = o;
nb++;
}
DomaineACle retrouver(Object cle){
for (int i = 0; i<nb; i++){
if (tab[i].getCle().equals(cle))
return tab[i];
}
return null;
}
int nombreElem(){
return nb;
}
void voir(){
for (int i = 0; i<nb; i++){
tab[i].print();
}
System.out.println();
}
}
abstract class Animal implements DomaineACle{
String nom;
Integer tatouage;
String cri;
Animal(String st, Integer tat){
nom=st;
tatouage = tat;
}
public Object getCle(){
return tatouage;
}
public void print(){
System.out.println(nom + " " + tatouage);
}
boolean repond(String n){
return n == nom;
}
void crie(){
System.out.print(cri);
}
abstract boolean court_t_y();
abstract boolean vole_t_y();
abstract boolean nage_t_y();
}
class Chien extends Animal{
Chien(String nom, Integer tatouage){
super(nom, tatouage);
cri = "ouah";
}
boolean court_t_y(){
return true;
}
boolean vole_t_y(){
return false;
}
boolean nage_t_y(){
return true;
}
boolean mord_t_y(){
return true;
}
}
class Serin extends Animal{
Serin(String nom, Integer tatouage){
super(nom, tatouage);
cri = "cuicui";
}
boolean court_t_y(){
return true;
}
boolean vole_t_y(){
return true;
}
boolean nage_t_y(){
return false;
}
void chante(){
for (int i = 0; i<15; i++){
this.crie();
}
}
}
class Main{
public static void main(String[] argv){
Chien medor = new Chien("medor",new Integer(17));
Sdd menagerie = new Sdd();
menagerie.ajouter(medor);
for (int i=0; i<10; i++){
Serin oiseau = new Serin("serin"+i,new Integer(20+i));
menagerie.ajouter(oiseau);
}
menagerie.voir();
Animal animal25 = (Animal) menagerie.retrouver(new Integer(25));
animal25.crie();
System.out.println();
Serin piupiu = new Serin("piupiu",new Integer(10));
menagerie.ajouter(piupiu);
Automate rossignol = new Automate("rossi", new Integer(20));
// menagerie.ajouter(rossignol);
}
}
class Automate{ // extends DomaineACle ?
String nom;
Integer tatouage;
String cri;
Automate(String st, Integer tat){
nom=st;
tatouage = tat;
}
public Object getCle(){
return tatouage;
}
public void print(){
System.out.println(nom + " " + tatouage);
}
boolean repond(String n){
return n == nom;
}
void crie(){
System.out.print(cri);
}
boolean court_t_y(){
return false;
}
boolean vole_t_y(){
return false;
}
boolean nage_t_y(){
return false;
}
void chante(){
for (int i = 0; i<15; i++){
this.crie();
}
}
}