Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMireille Lefebvre Modifié depuis plus de 9 années
1
Master 1 SIGLIS Jave Lecteur Stéphane Tallard Chapitre 5 – Correction TD
2
2013 - 2014Master SIGLIS2 Ouvrez la classe Ch5.java et lisez attentivement la méthode main de ce projet. Au besoin, exécutez la au debugger. Quels sont les objets qui sont créés ? un objet de la classe Dessin, 3 objets de la classe Cercle, 3 objets de la classe Carre, Trois objets de la classe Triangle. Quels sont les objets représentant les figures ? Les Cercle, les Carre, les Triangle. Quels sont les autres objets et quels sont leur fonction ? L'objet de la classe Dessin gère le dessin global. Nous allons analyser la classe Point. Ouvrez Point.java et lisez attentivement cette classe. Quels sont les attributs que contient cette classe ? Que représente cette classe ? deux attributs de type long : x et y. Elle représente un point. Repérez le constructeur de cette classe. Quel est l'intérêt de créer un tel constructeur ? C'est un raccourci. Comme tout point doit contenir un abscisse et une ordonnée, il évite une instanciation + un appel à setX + un appel à setY. Les attributs de cette classe sont déclarés en private. Quel impact cela a-t-il sur son utilisation ? On ne peut pas y accéder directement. Regardez les méthodes de cette classe. Quelle est leur utilité ? Il permettent de protéger les attributs. Pour les modifier et les lire, il faut passer par ces méthodes. Quel est l'intérêt de concevoir la classe Point de cette façon ? On a "encapsulé" la notion de point. Il serait facile de modifier la classe Point pour qu'elle gère les inconsistances de données (coordonnées négatives, … ). Ouvre maintenant la classe Figure. Lisez-la attentivement.
3
2013 - 2014Master SIGLIS3 Quels sont les attributs que contient cette classe ? Que représente cette classe ? Figure ne contient pas d'attribut. C'est une abstraction de la notion de figure. L'instruction "extends Figure" signifie que la classe Cercle hérite de la classe Figure. Listez toutes les autres classes qui héritent de la classe Figure. Cercle, Carre, Triangle héritent de figure. Regardez maintenant la méthode dessiner de la classe Cercle. A votre avis que fait-elle ? Pour vous aider vous pouvez aller voir sur http://docs.oracle.com/javase/tutorial/2d/geometry/primitives.html à la section "Ellipse".http://docs.oracle.com/javase/tutorial/2d/geometry/primitives.html Elle dessine un cercle. Regardez maintenant chacune des méthodes dessiner des autres sous-classes de Figure. Que font- elles ? Elles se dessinent … Regardez maintenant la méthode dessiner de la classe Figure. Pourquoi est-elle programmée comme cela ? Une figure ne contient pas de points : il n'a aucune information pour se dessiner. Elle ecrit un message d'erreur. Ouvrez maintenant Dessin.java. Que fait la méthode ajouterFigure ? Quel est le type du paramètre en entrée ? AjouterFigure rajoute une figure dans le tableau en s'assurant que l'on a moins de 100 figures. Revenez maintenant dans la classe Ch5. Repérez les appels à la méthode ajouterFigure. Comment se fait-il que l'on puisse passer à ajouterFigure des objets de type Cercle, Carré ou Triangle ?
4
2013 - 2014Master SIGLIS4 Cercle, Triangle et Carre étant des sous classe de Figure on peut utiliser des instances de ces classes à la place d'une instance de figure. Revenez maintenant sur Dessin.java. Quel est l'intérêt de déclarer ajouterFigure comme prenant en paramètre un objet de type Figure ? aJouterFigure pourra être appelée avec en paramètre n'importe quelle instance d'une sous classe de Figure. Observez l'attribut figures de la classe Dessin. De quel type est-il ? Quel est l'intérêt de le déclarer de cette façon ? C'est un tableau de Figure. Il peut contenir des Cercles, des triangles, des carrés. Vous allez maintenant créer votre propre figure : le Rectangle. Ouvrez la classe Ch5.java. Ajouter quelques rectangles artistiquement disposés et afficher le résultat final. Si tout s'est passé correctement, vous devriez voir des rectangles apparaître. cf Correction. Prenons de la hauteur: Quelles sont les opérations à faire pour ajouter à la bibliothèque de dessin, de nouvelles figures ? Combien de classes existantes faut-il modifier (la classe Ch5 n'est pas considérée comme faisant partie de la bibliothèque : on peut la voir comme une classe "utilisatrice") ? Il suffit de créer une sous classe de Figure et de programme la façon dont elle se dessine. Quel est l'intérêt de l'héritage dans le cas de cette application de dessin ? Limiter le nombre de classes à modifier lorsqu'on étend la bibliothèque. Diminuer la complexité du code (pas de if-then-else).
5
2013 - 2014Master SIGLIS5 Listes génériques cf Ch5.java
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.