Bonjour,

En surfant sur le net j'ai trouvé un exercice sur un autre site.

Voici l’énoncé :
Un éleveur de volaille reçoit d’un fournisseur de jeunes canards et de jeunes poulets qu’il élève jusqu’à ce qu’ils aient la taille nécessaire à leur commercialisation.
Une volaille est caractérisée par son poids et un numéro d’identification reporté sur une bague qu’elle porte a sa petite patte. Les volailles arrivent à l’élevage à l’âge de trois semaines. Elles sont baguées et enregistrées dans le système informatique.
Il y a deux sortes de volailles : des canards et des poulets. Le prix du canard et celui du poulet sont deux prix différents, exprimés en euros par kilo. En revanche, le prix est le même pour tous les individus de la même espèce. Ce prix varie chaque jour. Le poids auquel on abat les bêtes est différents pour les canards et les poulets, mais c’est le même pour tous les poulets (respectivement, tous les canards).
  1. Écrivez une classe des volailles avec deux sous-classes des poulets et des canards. Il faut pouvoir enregistrer les prix du jours, les poids d’abbatage, le poids d’une volaille donnée.
  2. Écrivez une classe permettant de représenter l’ensemble des animaux de l’élevage au moyen d’un tableau et de savoir le nombre de volailles reçues et le type de chaque volaille. On considérera que l'éleveur ne peut pas recevoir au maximum que 200 volailles à la fois.
  3. Écrire une méthode qui permet de calculer le prix total de toutes les volailles que l'éleveur possède.

Voici mes essais pour les questions :
  1. la première :
    Volaille.Java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Volaille {
        int Poids,ID;
        public Volaille(int P, int id){
            Poids = P;
            ID = id;
        }
        public void Affiche(){
            System.out.println("Poids : "+Poids+", N° : "+ID);
        }
    }
    Poulet.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Poulet extends Volaille{
        int PrixJour,PoidsAbat;
        public Poulet(int p, int id, int PJ, int PA){
            super(p,id);
            PrixJour = PJ;
            PoidsAbat = PA;
        }
        @Override
        public void Affiche(){
            super.Affiche();
            System.out.println("Prix du Jour : "+PrixJour+", Poids d'abattage : "+PoidsAbat);
        }
    }
    Canard.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Canard extends Volaille{
        int PrixJour,PoidsAbat;
        public Canard(int p, int id, int pj, int pa){
            super(p,id);
            PrixJour = pj;
            PoidsAbat = pa;
        }
        @Override
        public void Affiche(){
            super.Affiche();
            System.out.println("Prix du Jour : "+PrixJour+", Poids d'abattage : "+PoidsAbat);
        }
    }
  2. la deuxième :
    j'ai ajouté une variable booléenne à la classe Volaille qui teste sur le type de volaille, est ce poulet ou canard :

    Ensemble.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public class Ensemble{
        Volaille tab[] = new Volaille[200];
        public int Nbr_Type_Volaille(){
            int Nbr = 0;
            for(int i =0;i < tab.length;i++){
                if(tab[i] != null){
                    if(tab[i].type == true)
                        System.out.println("Poulet.");
                    else
                        System.out.println("Canard.");
                }
            }
            return Nbr;
        }
    }
    Malheureusement on ne peut pas connaitre le type de volaille à partir de la classe mère !
  3. la troisième :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class Ensemble{
        Volaille tab[] = new Volaille[200];
        public PrixTotal(){
            int PrixPoulet = 0;
            int PrixCanard = 0;
            for(int i =0;i < tab.length;i++){
                if(tab[i] != null){
                    if(tab[i].type == true)
                        PrixPoulet += tab[i].PrixJour;
                    else
                        PrixCanard += tab[i].PrixJour;
                }
            }
            return PrixPoulet+PrixCanard;
        }
    }
    ... L'attribut PrixJour ne se trouve pas dans la classe mère Volaille !

Je n'ai pas encore compilé les essais car ce ne sont pour le moment que des idées, espérons qu'elles soient logiques.