TP Java n o4 : A l’ouest de Java-Town... IUP I.I.E.S 23 Fevrier A. Lemay Object

TP Java n o4 : A l’ouest de Java-Town... IUP I.I.E.S 23 Fevrier A. Lemay Objectifs du TP : Comprendre la notion d’h´ eritage et d’interface. Mots cl´ es super, extends et implements Exercice 1: Western On d´ esire r´ ealiser un programme Java permettant d’´ ecrire facilement des histoires de Western. Dans nos histoires, nous auront des brigands, des cowboys, des sh´ erifs, des barmen et des dames en d´ etresses. Question 1.1: Tous humains... Les intervenants de nos histoires sont tous des humains. Un humain est caract´ eris´ e par son nom et sa boisson favorite. La boisson favorite d’un humain est, par d´ efaut, de l’eau. Un humain pourra parler. On aura donc une m´ ethode parle(texte) qui affiche : (nom de l’humain ) - texte Un humain pourra ´ egalement se pr´ esenter (il dit bonjour, son nom, et indique sa boisson favorite), et boire (il dira ”Ah ! un bon verre de (sa boisson favorite) ! GLOUPS !”). Toutes les variables de la classe humain seront priv´ ees. Pour connaˆ ıtre le nom d’un humain, on aura besoin d’une m´ ethode quel est ton nom() qui renvoie la chaˆ ıne contenant le nom de cet humain. De mˆ eme, on aura besoin d’une fonction pour connaˆ ıtre sa boisson favorite. R´ ealisez la classe Humain, dont le constructeur re¸ coit le nom de l’humain cr´ e´ e en param` etre. R´ ealisez un programme Histoire contenant votre fonction main. Dans cet histoire, vous cr´ eerez un humain qui se pr´ esente et qui boit. Question 1.2: Brigand, cowboys et dames en d´ etresses Les dames, les cowboys et les brigands sont tous des humains (si, si !). Par la mˆ eme, ils ont tous un nom et peuvent tous se pr´ esenter. Par contre, il y a certaines diff´ erences entre ces trois classes d’individus. Les brigands peuvent kidnapper les dames, les dames peuvent se faire enlever et se faire lib´ erer et les cowboys peuvent les lib´ erer. On a donc le petit sch´ ema suivant : Humain Brigand Cowboy Dame On dira que la classe Brigand est la fille de la classe Humain par exemple. On peut indiquer cela en Java. Lorsqu’on cr´ ee la classe Brigand par exemple, on indique : public class Brigand extends Humain { ... } En faisant cela, on dit qu’un brigand est un humain. Par cons´ equent, il poss` ede un nom, une boisson favorite, une m´ ethode pr´ esentation, ... sans avoir besoin de les red´ efinir. On dit que la classe Brigand h´ erite de la classe Humain. On peut par contre ajouter des variables et des m´ ethodes ` a la classe Brigand. Une dame est caract´ eris´ ee par la couleur de sa robe (une chaˆ ıne de caract` ere), et par son ´ etat (libre ou captive). Elle peut se faire kidnapper (auquel cas elle hurle), se faire lib´ erer par un cowboy (elle remercie alors le h´ eros qui l’a lib´ er´ e). Elle peut ´ egalement changer de robe (tout en s’´ ecriant "Regardez ma nouvelle robe (couleur de la robe) !". Un brigand est un humain qui est caract´ eris´ e par un look (”m´ echant” par d´ efaut), un nombre de dames enlev´ e, la r´ ecompense offerte lorsqu’il est captur´ e (100 $ par d´ efaut), un bool´ een indiquant s’il est en prison ou pas. Il peut kidnapper une dame (auquel cas, il s’exclame ”Ah ah ! (nom de la dame), tu es mienne d´ esormais !”. Il peut ´ egalement se faire emprisonner par un cowboy (il s’´ ecrit alors "Damned, je suis fait ! (nom du cowboy), tu m’as eu !" . On dispose ´ egalement d’une fonction pour connaˆ ıtre la r´ ecompense obtenue en cas de capture. Un cowboy est un humain qui est caract´ eris´ e par sa popularit´ e (0 pour commencer, augmente de 1 ` a chaque dame d´ elivr´ ee) et un adjectif le caract´ erisant (”vaillant” par d´ efaut). Un cowboy peut tirer sur un brigand (un commentaire indique alors (”Le (adjectif) (nom) tire sur (nom du m´ echant). PAN !” et le cowboy s’exclame ”Prend ¸ ca, rascal !”). Il peut ´ egalement lib´ erer une dame (en la flattant). R´ ealisez les trois classes Brigand, Cowboy et Dame. Modifiez votre histoire pour tester ces classes. Question 1.3: surcharge Au sein d’une classe fille, vous avez appris jusque l` a ` a ajouter des attributs et des m´ ethodes. Il est ´ egalement possible de changer les attributs et m´ ethodes de la classe m` ere. Pour cela, il suffit simplement de les red´ efinir dans la classe fille. On parle alors de surcharge. Quand on demande son nom ` a un dame, elle r´ epond Miss (son nom) et un brigand dira (son nom) le (son look) (par exemple Bob le m´ echant). Un cowboy dira simplement son nom (ce sont des gens simples). Surchargez la m´ ethode quel est ton nom() dans les classes Brigand et Dame. Testez. Les m´ ethodes que vous avez ´ ecrite ”remplaceront” (on parle de surcharge) la m´ ethode quel est ton nom() de la classe Humain. Question 1.4: super On d´ esire aussi changer le mode de pr´ esentation des brigands, dames et cowboys. Un brigand parlera aussi de son look et du nombre de dames qu’il a enlev´ e et de la r´ ecompense offerte pour sa capture. Une dame ne pourra s’empˆ echer de parler de la couleur de sa robe, alors qu’un cowboy diront ce que les autres disent de lui (son adjectif) et parlera de sa popularit´ e. Si on r´ ecrit la m´ ethode qui permet ` a une personne de se pr´ esenter, la m´ ethode de la classe Humain sera remplac´ e. On d´ esire quand mˆ eme appeler cette m´ ethode. Le brigand Bob se pr´ esentera par exemple de la mani` ere suivante : (Bob) - Bonjour, je suis Bob le m´ echant et j’aime le Tord-Boyaux. (la m´ ethode de pr´ esentation de la classe Humain) (Bob) - J’ai l’air m´ echant et j’ai d´ ej` a kidnapp´ e 5 dames ! (Bob) - Ma t^ ete est mise ` a prix 100 $ ! Au sein d’une sous-classe d’Humain, on peut surcharger la m´ ethode presentation(), et appeler la m´ ethode de pr´ esentation de la classe m` ere par la syntaxe super.presentation(). De mˆ eme, on veut donner une boisson par d´ efaut ` a chaque sous-classe d’humain (lait pour la dame, tord-boyaux pour le brigand et whisky pour le cowboy). Pour cela, on cr´ e´ e un constructeur pour chacune de ces sous-classes dans lequel on appelle le constructeur de la classe m` ere (c’est ` a dire super.Humain(...)) avant d’attribuer la boisson par d´ efaut. Modifiez vos classes en ce sens. Testez. Question 1.5: Un verre, patron ! Un barman est un humain dont la boisson favorite est le Vin. Il peut servir n’importe quel humain, en lui donnant un verre de sa boisson favorite (les barmen ont un sixi` eme sens pour cela). 2 Il est caract´ eris´ e par le nom de son bar. Par d´ efaut, il s’agira du bar Chez (nom du barman) . La classe barman aura deux constructeurs. Soit on cr´ ee un barman en indiquant uniquement son nom, soit on indique ´ egalement le nom de son bar. Quand un barman se pr´ esente, il n’oublie pas de mentionner le nom de son bar. Quand un barman parle, il termine toutes ses phrases par "Coco.". R´ ealisez la classe Barman. Testez. Question 1.6: I’m the law On ajoute ` a notre histoire des sh´ erifs. Un sh´ erif est un cowboy qui peut coffrer des brigands (en criant "Au nom de la loi, je vous arr^ ete !". Il peut ´ egalement rechercher un brigand. Un commentaire indique alors qu’il placarde une affiche dans toute la ville, et il dit, par exem- ple, "OYEZ OYEZ BRAVE GENS !! 200 $ ` a qui arretera Bob le brigand mort ou vif !!". Tout le monde s’accorde pour dire que les sh´ erifs sont honnˆ etes. Il est caract´ eris´ e par le nombre de brigands qu’il a coffr´ e qu’il ne manquera pas de pr´ eciser lorsqu’il se pr´ esente. Il refuse de se faire appeler autrement que par Sh´ erif son nom . R´ ealisez la classe Sh´ erif. Testez. Question 1.7: Les sh´ erif sont des cowboys dans l’ˆ ame Comme un sh´ erif est un cowboy, on peut cr´ eer un cowboy en faisant : Cowboy Clint = new Sherif("Clint"), Testez. Quelles sont les fonctions qui sont appel´ ees (quand le cowboy se pr´ esente par exemple). Peut-on demander ` a ce cowboy de coffrer un brigand ? Exercice 2: Interfaces On d´ esire faire des histoires de western plus int´ eressantes, en faisant intervenir des Ripoux. Un ripoux est un sh´ erif qui est uploads/Litterature/ td-java-town.pdf

  • 21
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager