Universit´ Paris 7 e Licence Informatique
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 justi?´ : la marge droite n’´tait pas align´e. Pour juse e e e e e ti?er 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 justi?er les lignes. 1. Justi?cation A?n deproduire du texte justi?´, on modi?era 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 BoiteEtirableCommencez 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 retournefalse pour tous les objets. e e D´?nissez 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 ´tirablesModi?ez maintenant la d´?nition 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 toujourstrue), 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´ri?er si c’est le cas. e e La m´thode toString(n)…