Les interfaces sont très pratiques en termes de conception orientée objet et permettent d'avoir une vision globale cohérente du fonctionnement d'un programme, de ses différents acteurs et de la manière dont ils interagissent. Il est donc important de savoir implémenter des interfaces en respectant leurs spécifications. Voici l'interface DrapeauIF
:
// Une interface simple correspondant à un drapeau public interface DrapeauIF { /* * @pre : - * @post : le drapeau prend la valeur passée en argument */ public void set(boolean drapeau); /* * @pre : - * @post : Si l'argument est 'V' ou 'v', le drapeau * prend la valeur vrai et faux sinon */ public void set(char c); /* * @pre : - * @post : retourne le drapeau sous forme d'un booléen */ public boolean toBoolean(); }
Prenez connaissance de sont fonctionnement et de ses spécifications. Voici maintenant la classe Drapeau
qui implémente l'interface DrapeauIF
:
// Une classe simple avec un objet contenant un booléen public class Drapeau implements DrapeauIF { private boolean drapeau; // la valeur du drapeau // Constructeurs /* * @pre : - * @post : un objet de type Drapeau est créé * et représente le drapeau 'false' */ public Drapeau() { drapeau = false; } /* * @pre : - * @post : un objet de type Drapeau est créé et * représente le booleen passé en argument */ public Drapeau(boolean drapeau) { this.drapeau = drapeau; } /* * @pre : - * @post : un objet de type Drapeau est créé. * Si l'argument est 'V' ou 'v', il représente le * drapeau true. * Sinon, il représente le drapeau false */ public Drapeau(char c) { drapeau = (c == 'V' || c == 'v'); } public void set(boolean drapeau) { // A Complèter } public void set(char c) { // A Complèter } public boolean toBoolean() { return drapeau; } }
Implémentez les deux alternatives de la méthode set()
de la classe Drapeau
en vous référant aux spécifications énoncées dans l'interface DrapeauIF
.