TD Programmation par objets - Java, Licence3 - Module ULIN504, Université de Montpellier II- Resp. J. Ferber

 TD 4: Héritage

 1 Héritage

Exercice 1:  Ecrire une classe Triangle telle qu'il soit possible de créer un triangle à partir de 3 Point (classe vue au TD4), et que l'on puisse à tout moment changer la position d'un des sommets du triangle. On créera un constructeur Triangle(Point p0, Point p1, Point p2).

Exercice 2: Ecrire la classe Quadrilatère de la même manière.

Exercice 3: Ecrire ensuite la classe Rectangle qui hérite de Quadrilatère. On supposera que les rectangles issus de cette classe sont horizontaux. Définir une méthode construire() dans Rectangle qui prend les points 0 et 2 (supposés être les points opposés, haut gauche et bas droite) et qui en déduit les deux autres points (dans l'ordre, haut droite et bas gauche).

Définir un constructeur de Rectangle(Point a, Point b) qui construit un Rectangle à partir des deux points opposés a se trouve en haut à gauche, et en bas à droite.

Définir les méthodes hauteur(), largeur() et surface() dans Rectangle qui retournent respectivement la hauteur, la largeur et la surface d'un rectangle.

Exercice 4: On voudrait calculer la surface des polygones, mais on ne sait le faire que pour les Rectangles :-). On supposera que si l'on ne sait pas calculer la surface d'un polygone cela donne -1. Donnez les méthodes surface() dans Polygone et dans ses sous-classes dont on sait calculer la surface.

Exercice 5: Définir une classe EnsemblePolygone qui comprend un tableau de polygones dont la taille maximale est définie lors de la création de cet ensemble. Définir une méthode ajouterPolygone(Polygone pol) qui ajoute un polygone à cet ensemble (à condition que la capacité de cet ensemble ne soit pas dépassé).

Définir une méthode sommePerimetres() qui retourne la somme de tous les périmètres de chaque polygone du tableau.

Exercice 6: Redéfinir la méthode toString() des polygones de manière à ce que chaque polygone affiche l'information suivante <classe de polygone>: <p0>, ..., <pn>, où chaque point s'écrit (<x>,<y>) (on redéfinira ainsi la méthode toString() de Point.

Exercice 7: Définir dans EnsemblePolygone, une méthode qui affiche tous les polygones qu'il contient.