UFR de Mathématiques et d'Informatique |
IUP 1, DEUG 2, 2002/2003 |
Algorithmique et programmation orientées objet |
Travaux dirigés |
Séance 5, mars |
Les piles de Lyumines
1 Les piles de Lyumines
Les lyumines ont l'habitude de s'amuser à faire des tours
en se montant sur les épaules.
Il s'agit dans cet exercice d'écrire la classe
PileDeLyumines.
Les méthodes publiques à implanter sont :
- PileDeLyumines() : crée une pile vide.
- boolean estVide()
- void empiler(Lyumine l)
- Lyumine dépiler()
- Lyumine sommet()
- void vider() : vide la pile.
- boolean contient(Lyumine l)
- int hauteur()
- String toString() : description de la pile de Lyumines.
Implantation : l'exercice
consiste à implanter cette classe
en utilisant comme seuls attributs :
private Lyumine element ;
private PileDeLyumines auDessous ;
Indication : pour simplifier le codage,
on pourra choisir de signaler le bas de la pile par une pile vide.
2 Implantation alternative (facultatif)
Dans le code obtenu pour l'exercice 1,
on peut remarquer que la plupart des méthodes
font un test pour savoir quel code
appliquer selon que la pile est vide on non.
En conséquence, on envisage la conception alternative suivante :
- définir une classe abstraite PileDeLyumines ;
- définir une classe PileNonVideDeLyumines,
qui hérite de PileDeLyumines ;
- définir une classe PileVideDeLyumines,
qui hérite de PileDeLyumines.
Ainsi, on mettra le code pour les piles vides
dans la classe PileVideDeLyumines,
et le code pour les piles non vides dans la
classe PileNonVideDeLyumines.
Le bon code sera appelé à l'exécution en fonction du type de la pile.
Cela permettra en outre de n'avoir aucun attribut
dans PileVideDeLyumines,
ce qui est plus élégant que l'implantation de l'exercice 1.
Qu'en pensez-vous ?
This document was translated from LATEX by
HEVEA.