Pharmacie
Java Ann´e 2005-2006 e
TD n◦4
Interfaces, polymorphisme (suite)
Exercice 1 Nous poursuivons cette semaine l’´criture d’un outil formateur de texte. Le texte e produit dans le td pr´c´dente n’´tait pas justifi´ : la marge droite n’´tait pas align´e. Pour juse e e e e e tifier le texte, nous allons introduire une nouvelle interface BoiteEtirable qui ´tend l’interface e Boite. Les objets de l’interface BoiteEtirable pourront ˆtre convertis en chaˆ e ınes de longueur arbitraire, ce qui nous permettra de justifier les lignes. 1. Justification Afin de produire du texte justifi´, on modifiera la m´thode d’impression de la classe Formateur e e pour qu’elle imprime des espaces de largeur variable. La m´thode etirable et l’interface BoiteEtirable Commencez par ajouter ` l’interface e a Boite une nouvelle m´thode bool´enne etirable, et ajoutez cette m´thode ` toutes les classes e e e a qui impl´mentent Boite. Pour le moment, cette m´thode retourne false pour tous les objets. e e D´finissez maintenant une nouvelle interface BoiteEtirable qui ´tend Boite en lui ajoutant e e une m´thode toString(int n) de type String. Dans le reste de cette partie, nous impl´menterons e e cette nouvelle m´thode qui doit convertir une boˆ en une chaˆ e ıte ıne, mais en ajoutant n espaces suppl´mentaires aux endroits o` cela peut se faire. e u Les espaces ´tirables Modifiez maintenant la d´finition de la classe BoiteEspace pour qu’elle e e impl´mente l’interface BoiteEtirable. Toutes les BoiteEspaces sont ´tirables (la m´thode e e e etirable retourne toujours true), et toString(n) retourne simplement une chaˆ de n+1 ıne espaces (l’espace d’origine, et n espaces ajout´s). e Les boˆ ıtes composites ´tirables Le cas d’une boˆ composite est un peu plus compliqu´. e ıte e Une boˆ composite peut-ˆtre ´tir´e d`s qu’une des boˆ ıte e e e e ıtes qu’elle contient peut l’ˆtre : la e m´thode etirable devra donc v´rifier si c’est le cas. e e La m´thode toString(n) devra