Le but de cet exercice est de construire un anneau comme étant un cercle dont on a évidé une zone circulaire définie par son rayon interne.
Préliminaire : avant d'écrire la classe Ring,
Ajouter à la classe Circle du TD précédent
la méthode surface() qui renvoie la
surface d'un cercle (en fait du disque).
Modifier la méthode toString() pour
qu'elle affiche la surface.
Écrire la classe Ring sans se soucier de la classe
Circle.
Rappeler dans un premier temps, dans quel cas il est judicieux
de faire de l'héritage.
Écrire la classe Ring2 qui hérite de la
classe Circle. On veut avoir les mêmes
méthodes et les même fonctionnalité dans la
classe Ring2 que la classe Ring.
Quelle est le problème avec la méthode surface ?
Ring2 ring=new Ring2(new Point(1,2),2,1); System.out.println(ring.surface());Comment le résoudre ?
Comment faire pour implanter une méthode contains(Ring2[] rings,Point p) qui renvoie vrai si un point est contenu dans un des anneaux.
Le but de cet exercice est de construire un évaluateur d'expressions arithmétiques simples. Ces expressions sont représentées sous forme d'arbre.
On veut un type commun Expr représentant des
expressions arithmétiques qui peuvent être soit une valeur
réelle (de type Value) soit une opération
d'addition (de type Add) qui permet d'effectuee
l'addition de deux expression.
On veut de plus être capable d'évaluer
de ces expressions en utilisant la méthode
eval().
Expr value=new Value(7.0); System.out.println(value.eval()); // affiche 7.0 Expr add=new Add(new Value(3.0),value); System.out.println(add.eval()); // affiche 10.0 Expr expr=new Add(new Value(2.0),add); System.out.println(expr.eval()); // affiche 12.0
Java Evaluator "+" "7" "*" "3" "2" =13Chaque chaîne de caractère est analysé pour savoir s'il s'agit d'un opérateur où d'une valeur. L'expression est construite par un parcours récursif.