Programmation Java
Master M2 TTT --- Feuille n° 3
Héritage, interfaces, classes abstraites
Exercice n° 1 (Rectangle)
-
Écrire une classe Rectangle tel que chaque rectangle a un champ
height et width. Écrire un constructeur naturel, une
méthode double getArea() qui calcule l'aire du rectangle ainsi qu'une
méthode toString() affichant les coordonnées
- Écrire une classe ColoredRectangle dérivée de
Rectangle pour représenter des rectangles ayant un attribut
color de la classe String. Écrire un constructeur
naturel, une méthode toString() affichant les coordonnées du rectangle
et sa couleur. Écrire une méthode void setColor() permettant de
changer la couleur du rectangle courant.
Exercice n° 2 (Shape)
-
Créer une interface Shape pour représenter des formes géométriques.
Elle comprenant une méthode
double getArea() et une méthode
String toStringArea() donnant la chaîne de caractères
"l'aire de la forme est : xxx" où xxx est l'aire de la forme
géométrique.
-
Écrire une classe abstraite AbstractShape implémentant l'interface
Shape avec un constructeur
et ume implémentation de la méthode String toStringArea().
-
Écrire des classes concrètes Rectangle et
Ellipse qui dérivent de la classe AbstractShape.
Chaque classe comprendra un constructeur et implémentera la méthode
double getArea().
-
Ajouter une classe ColoredRectangle dérivée de
Rectangle comme à l'exercice précédent.
-
Ajouter des méthodes public boolean equals(Object o)
permettant de tester l'égalité des objets manipulés. A quelle niveau
de la hiérarchie doit figurer cette méthode ? S'agit-t-il d'une surcharge
ou d'une redéfinition ?
-
Ajouter des tags html à votre code pour créer une documentation des classes
précédentes.