<< Polynomes | PSOOIndex | Systèmes Linéaires >>


Plan (hide)

  1.   1.  Héritage
  2.   2.  Figures géométriques
    1.   2.1  Questions
    2.   2.2  Indications
  3.   3.  Archive

1.  Héritage

En Java l’héritage est un héritage simple (une classe fille a une unique classe mère). Lorsqu’une classe hérite d’une autre classe, elle l’étend. Une classe fille qui a hérité d’une classe mère possède tous les attributs et toutes les méthodes de la classe mère, elle ne peut cependant pas utiliser les membres de la classe mère qui sont privés.

class Fille extends Mere {

//...

}

2.  Figures géométriques

L'objectif de cet exercice est de mettre en œuvre l'héritage en Java. Les figures sont représentées dans le plan et on considère les ellipses, les disques, les couronnes, les polygones, les polygones réguliers, les triangles, les rectangles et les carrés. Chaque classe doit comporter :

  1. le(s) constructeur(s) nécessaires ;
  2. une méthode public String toString() qui affiche les informations de l'objet correspondant ;
  3. une methode public boolean equals(Object obj) qui teste si deux objets sont identiques ;
  4. une méthode public void translation(...) à laquelle on fournit le vecteur de translation ;
  5. une méthode qui calcule l'aire de votre objet double aire()

2.1  Questions

  1. Quel est votre arbre d'héritage ?
  2. Définition des classes utilitaires :
    1. Définir une classe Point que vous pourrez utiliser.
    2. Définir une classe VecteurDuPlan.
  3. Définir les différentes classes demandées (l'ordre n'est pas imposé, ni indicatif) :
    1. les ellipses ;
    2. les disques ;
    3. les couronnes ;
    4. les polygones ;
    5. les polygones réguliers ;
    6. les triangles ;
    7. les rectangles ;
    8. et les carrés.
  4. Définir une classe de test.
  5. Afin de structurer les classes, vous devez définir une classe FigurePlan ancêtre de vos classes qui permet entre autre d'établir une relation d'ordre entre vos différentes figures. Une figure a est plus grande qu'une figure b si son aire est plus grande.
    1. Quel est la nature de cette classe ? Pourquoi ?
    2. Écrire cette classe et modifiez les autres classes en conséquences.
    3. Quel contrat cette classe respecte t-elle ? Comment cela se traduit au niveau du code ?

2.2  Indications

Ellipse

Aire d'une ellipse connaissant ses deux diamètres a et b : {$ S = \frac{\Pi}{4} a \times b $}.

Polygone

Aire d'un polygone. Si on considère que le polygone a pour sommets {$A_0, A_1, …, A_n = A_0$} et si {$A_i$} a pour coordonnées {$(x_i , y_i)$} et que les sommets sont ordonnés dans le sens trigonométrique alors : {$$A = \frac12\sum_{i = 0}^{n - 1}( x_i y_{i + 1} - x_{i + 1} y_i)~$$}

Polygone régulier

Un polynôme régulier peut être défini par son nombre {$n$} de sommets, son centre {$C = (x_c, y_c)$} et un de ses sommets, {$P = (x_p, y_p)$}. Soit {$dx = x_p – x_c, dy = y_p – y_c $} alors {$ d(C,P) = r = \sqrt{dx^2 + dy^2}$}. L'angle {$ \alpha $} en {$C$} formé par {$CP$} et l'horizontale est alors {$ \alpha = \arctan(\frac{d_y}{d_x}) $}. Les {$n$} sommets du polygone sont alors les points {$(x_i, y_i)$} définis par : {$$ x_i = x_c + r \times \cos(\alpha + i \times 2 \times \frac{\pi}{n})
y_i = y_c + r \times \sin(\alpha + i \times 2 \times \frac{\pi}{n}) $$}

3.  Archive

Pas encore !