Programmation Java
Master M2 TTT --- Feuille n° 2
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 dimensions du rectangle.
- É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 dimensions 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 comprend 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.
Exercice n° 3 (Exception)
-
Écrire une classe ShapeDimensionException
qui dérive de la classe Exception et correspondra à un exception
levée lorsqu'une forme a une des ses deux dimensions négative.
Re-écrire les constructeurs des classes AbstractShape,
Rectangle et Ellipse
pour qu'ils lèvent une exception en cas d'arguments négatifs.
-
Dans une classe Test écrire une méthode main
qui crée un rectangle dont les coordonnées sont lues au clavier.
En cas de coordonnées négatives, on demandera à l'utilisateur d'entrer à nouveau les données en capturant l'exception levée.
Exercice n° 4 (Matrix)
- Écrire une classe Matrix qui contient comme attribut
un tableau à double entrée d'entiers.
-
Écrire un constructeur prenant en arguments trois entiers n,m et x,
qui crée une matrice rectangulaire
de taille n×m (à n lignes et m colonnes) comportant
des x partout.
-
Écrire un constructeur qui crée une matrice carrée
de taille n×n comportant des x partout.
-
Écrire une fonction Matrix add (Matrix m2) qui renvoie
la somme de la matrice courante avec la matrice passée en argument.
-
Écrire une méthode main dans une classe Test
qui teste les constructeurs et méthodes précédentes.