Programmation Java Avancée
Master M2 TTT --- Feuille n° 1
Conteneurs, Etats, Enumérations, Prototypes
On imagine un travailleur qui peut avoir trois états: content, fatigué ou
en colère.
On peut lui demander trois choses: travailler, se reposer ou encore
donner de ses nouvelles.
Les réponses à ces requêtes sont indiquées par le tableau suivant:
|
Repos |
Travail |
Nouvelles |
Content |
|
Fatigué |
"Ça va !!" |
Fatigué |
Content |
En colère |
"Bof" |
En colère |
Content |
AngryException |
"Grrrr" |
Exercice n° 1
Écrire une classe Travailleur
contenant des méthodes correspondant
à chaque requête et tester l'application d'une suite de requêtes à un travailleur.
Utiliser les valeurs d'une énumération pour représenter les différents
états possibles d'un travailleur.
Exercice n° 2
Modifier votre programme de manière à n'utiliser aucun test (ni if, ni switch).
Exercice n° 3
On suppose maintenant que l'on gère un grand nombre de travailleurs (une centaine, par exemple)
identifiés par des numéros. On veut que deux travailleurs
dans le même état soient
représentés par le même objet. Modifier le programme en conséquence.
Exercice n° 4
On suppose maintenant que chaque travailleur dispose d'un
certain nombres de points de contentement (5 au départ) et que les changements d'états
se font selon le tableau suivant:
|
Repos |
Travail |
Content |
pt++ |
pt-- ; si pt=0 fatigué |
Fatigué |
pt++ ; si pt=3 content |
pt-- ; si pt=-5 en colère |
En colère |
pt++ ; si pt=5 content |
AngryException |
Modifier votre code de sorte à n'avoir qu'un
seul objet représentant un travailleur pour chaque état et chaque niveau de force
et à ne créer un tel objet qu'en cas de nécessité.
Exercice n° 5
Plutôt que de donner un ordre à la fois, on souhaite pouvoir effectuer
une suite de requêtes à l'intention d'un travailleur. Mettre à jour
votre code.