:: Enseignements :: ESIPE :: E3INFO :: 2011-2012 :: Programmation Objet avec Java ::
[LOGO]

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.

  1. Est-il intéressant de stocker le nombre maximum de points dans un champs statique ?
  2. É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 ?
  3. Écrire une méthode pointCapacity() renvoyant le nombre de points maximum de la PolyLine.
  4. 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.
  5. Écrire une méthode pointCount() qui renvoie le nombre de points constituant actuellement la PolyLine.
  6. Écrire une méthode contains() qui renvoie vrai si le point passé en argument est un des points constitutifs de la PolyLine.
  7. 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.

  1. À partir de la classe PolyLine, créer une classe FreePolyLine, ré-écrire son constructeur et sa méthode add().
  2. Comment enlever le warning que le compilateur signale sur sur la méthode linkedList.add().
  3. Que faire de la méthode pointCapacity() ?
  4. [À la maison] 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]