:: Enseignements :: ESIPE :: E3INFO :: 2012-2013 :: Programmation Objet avec Java ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) |
Objets, délégation, structure simple, exceptions
|
Exercice 1 - PolyLine
Le but de cet exercice est de définir
une classe PolyLine qui représente
une ligne brisée définie par une succession
de points.
On souhaite qu'un objet PolyLine donné puisse
avoir un nombre de points variable, mais borné par un
nombre maximum de points défini lors de sa création.
Ce nombre maximum peut donc varier d'une PolyLine à une autre.
Pour définir les points qui constituent la PolyLine
on définira une méthode add() qui permet d'ajouter
un point à la PolyLine.
Pour tout l'exercice, vous écrirez un main de
test dans la classe PolyLineTest.
-
Est-il intéressant de stocker le nombre maximum de points
dans un champs statique ? Expliquer pourquoi.
-
Écrire le constructeur ainsi que la méthode add().
Sachant que l'on ne va pas écrire de code spécifique
si l'on dépasse le nombre maximum de points autorisés,
que va-t-il se passer ?
-
Écrire une méthode pointCapacity() renvoyant
le nombre de points maximum de la PolyLine.
-
Que doit-on faire d'intelligent (SVP) si on ajoute un point
à une PolyLine possédant déjà son nombre maximum
de points.
Implanter la solution retenue.
-
Écrire une méthode pointCount() qui renvoie
le nombre de points constituant actuellement la
PolyLine.
-
Écrire une méthode contains() qui renvoie vrai
si le point passé en argument est un des points constitutifs
de la PolyLine.
-
Que se passe t-il si l'on fait un contains() avec null
en argument ?
Et un add() avec null en argument ?
Exercice 2 - Free PolyLine
On souhaite simplifier la vie de l'utilisateur
d'une PolyLine en lui évitant
d'indiquer le nombre maximum de points.
Pour cela, on se propose de stocker les
points dans une java.util.LinkedList.
-
À partir de la classe PolyLine,
créer une classe FreePolyLine, ré-écrire son constructeur
et sa méthode add().
-
Comment enlever le warning que le compilateur signale sur
sur la méthode linkedList.add().
-
Que faire de la méthode pointCapacity() ?
-
Ré-écrire pointCount() et contains()
en regardant la doc de java.util.LinkedList.
Exercice 3 - Table de hachage
On souhaite afficher l'animal préférée de Bob, Alice ou June.
Alice a pour animal préféré : edith le singe.
Bob a pour animal préféré : izard le chamoix.
June a pour animal préféré : gold le poisson rouge.
Exercice 4 - [À la maison -- ou plus exactement pour occuper les impatients]
- [**] Écrire ce qu'il faut dans PolyLine pour obtenir que le code
PolyLine poly = new PolyLine(5);
System.out.println(poly);
Point p0 = new Point();
poly.add(p0);
System.out.println(poly);
Point p1 = new Point(1,1);
poly.add(p1);
System.out.println(poly);
produise l'affichage
[]
[(0,0)]
[(0,0), (1,1)]
Quel sont les problèmes de votre code?
-
[***] Même question avec FreePolyLine.
© Université de Marne-la-Vallée