|
Exercices sur la notion d'héritage : commençons avec la classe Point ! | Point.java |
|
Définition de la classe Polygone
... |
Polygone.java |
|
Calcul du périmètre d'un polygone. |
Polygone.java |
|
Définition de la classe Rectangle
(un cas particulier de Polygone). |
Rectangle.java |
|
Définition de la classe Carre
(une spécialisation de Rectangle). |
Carre.java |
|
Calcul du Rectangle englobant
d'un Polygone. |
Polygone.java |
class Point { protected float x, y; public Point() { x = 0; y = 0; } public Point(float x, float y) { this.x = x; this.y = y;} public float getX() { return x; } public float getY() { return y; } public String toString() { return "("+x+","+y+")"; } |
Exercice 1 :
![]() |
class TestPolygone { public static void main(String[] args) { Point[] sommets = new Point[]{new Point(1,1), new Point(1,2), new Point(2,2), new Point(2,1)}; Polygone p = new Polygone(sommets) System.out.println(p); } } |
C:\Java\Algo>
java TestPolygone Polygone : {(1.0, 1.0) (1.0, 2.0) (2.0, 2.0) (2.0, 1.0) C:\Java\Algo> |
Ajouter à la classe Polygone une méthode, à résultat réel, calculant le périmètre du polygone (somme des cotés).
Un rectangle est un polygone particulier (on ne s'intéressera ici qu'aux rectangles ayant leur cotés parallèles aux axes). Plutot que de définir un rectangle par ses quatre sommets, on préfére le définir par deux points opposés ou par un point plus la largeur et la hauteur :
![]() |
Ecrire une classe Rectangle, héritant de la classe Polygone; deux constructeurs seront fournis, l'un avec deux points, l'autre avec un point ete deux réels (largeur et hauteur). La méthode d'affichage précisera que c'est un rectangle. On devra pouvoir utiliser la méthode donnant le nombre de sommets et la méthode calculant le périmètre.
Note : On ne fournira que ce qui est nécessaire, compte tenu de ce qui est apporté par l'héritage ! ![]() |
![]() |
class TestPolygone { public static void main(String[] args) { Point[] ps = new Point[]{new Point(1,1), new Point(1,2), new Point(2,2), new Point(2,1)}; Polygone p = new Polygone(ps); System.out.println(p); System.out.println("Périmètre : "+p.perimetre()); Rectangle r = new Rectangle(new Point(0,1), new Point(1,0)); System.out.println(r); System.out.println("Périmètre : "+p.perimetre()); Rectangle rr = new Rectangle(new Point(0,1), 1, 1); System.out.println(rr); System.out.println("Périmètre : "+r.perimetre()); Rectangle c = new Carre(new Point(0,1), 1); System.out.println(c); } } |