mardi 20 novembre 2012

Classe abstraite pour un animal (java)

Cet exercice est est un exercice de base pour entrevoir l'intérêt des classes abstraites. Avec un peu d'imagination, on doit se rendre compte que le procédé qui y est utile peut servir dans un cadre plus réel. On définit quatre classes.
  • La classe Animal est abstraite et déclare uniquement une méthode abstraite nommée action, sans paramètre et qui ne retourne rien.
  • La classe Chien hérite de Animal et définit la méthode action qui écrit à l'écran "J'aboie".
  • La classe Chat hérite de Animal et définit la méthode action qui écrit à l'écran "Je miaule".
  • La classe EssaiChat contient trois champs statiques :
    • un champ statique pour un attribut de type java.util.Random qui est initialisé dès sa définition
    • une méthode statique nommée tirage sans paramètre qui retourne un Animal qui a une chance sur deux d'être un Chat et une chance sur deux d'être un Chien.
    • une méthode main qui utilise la méthode tirage et invoque la méthode action sur l'animal obtenu par cette méthode.

Corrigé :


 pour Animal.java qui contient les quatre classes.

abstract class Animal
{
   
    abstract void action();
}  

class Chien extends Animal
{
    void action()
    {
 System.out.println("J'aboie");
    }
}  

class Chat extends Animal
{
    void action()
    {
 System.out.println("Je miaule");
    }
}  

class EssaiAnimal
{ 
    static java.util.Random alea = new java.util.Random();

    static Animal tirage()
    {
 return (Math.abs(alea.nextInt()) % 2 == 0 ? new Chien() : new Chat());
    }

    public static void main(String[] arg)
    {
 tirage().action();
    }
}

Aucun commentaire:

Enregistrer un commentaire