[Précédent]
[Index] | [Corrigé] | [Version imprimable]
[Prochain]

9.3
  Calcul de surfaces 2 - Enoncé
Niveau 1
 
 
But:
  Modifier un petit programme de calcul de surfaces    
Thème:
  Polymorphisme    
Fichiers:
  Surfaces.java    

Note : cet exercice est facultatif si vous avez programmé l'exercice de niveau 0 par vous même.

Reprenez l'exercice 3 de la série 7: Surfaces.java. Vous avez déjà converti le programme procédural en programme orienté objet, mais on voudrait maintenant améliorer le code en utilisant le polymorphisme.

Tout d'abord, créez une super-classe commune pour Cercle et Rectangle que vous appellerez par exemple Forme. Cette classe devra déclarer la méthode abstraite calculerSurface afin de forcer les sous-classes à implémenter ce calcul.

Dans la solution actuelle, Terrain contient trois instances de Rectangle et deux de Cercle, mais il devrait être capable de contenir n'importe quelle combinaison de Formes. Remplacez donc les variables d'instance r1, r2, r3, c1 et c2 par un tableau de Forme (le constructeur de la classe Terrain donnera à ce tableau une taille maximale de votre choix). Ajoutez une nouvelle méthode ajouterForme à Terrain afin de permettre à l'utilisateur d'étendre son terrain.
N'oubliez pas de modifier calculerSurfaceTotale pour prendre en compte vos modifications.

Le nouveau main devrait ressembler à ceci:

    public static void main (String[] args) {
        // Construction d'un terrain:
        Terrain t = new Terrain();

        t.ajouterForme(new Rectangle(100, 100));
        t.ajouterForme(new Cercle(50));

        t.afficherSurfaceTotale();
    }

 


[Précédent]
[Index] | [Corrigé] | [Version imprimable]
[Prochain]