Soient les classes
Cercle
et Carre
:
public class Cercle{ public static final double PI= 3.14159; private double r; public Cercle(double r) { this.r = r; } } |
public class Carre{ private double c; public Carre(double c) { this.c = c; } } |
Forme
et FormeComparable
:
public interface Forme{ double surface(); } |
public interface FormeComparable extends Forme{ /** Renvoie true si l'objet courant a une surface supérieure à f **/ boolean estPlusGrand(FormeComparable f); } |
Cercle
et Carre
pour qu'elles implémentent FormeComparable
(pour le cercle, surface = PI * r * r ; pour le carré, surface = c * c).
2) Soit la classe Main :
class Main{ public static void main(String[] args) { FormeComparable[] tableau = { new Carre(2), new Cercle(2), new Carre(3), }; } }2.1) Ajoutez à
Carre
et Cercle
une méthode public String toString()
affichant respectivement
Cercle 2.0
et Carré 2.0
(affiche le rayon ou le coté au lieu de 2.0).
2.2) Complétez
Main
pour obtenir l'affichage :
Carré 2.0 ; surface = 4.0 Cercle 2.0 ; surface = 12.56636 Carré 3.0 ; surface = 9.0 Carré 2.0 est plus grand que Cercle 2.0 ? false(l'affichage des éléments de
tableau
doit se faire dans une boucle).
3) Modifiez
FormeComparable
, Cercle
et Carre
pour transférer l'implémentation de la méthode estPlusGrand()
dans l'interface.