:: Enseignements :: Licence :: L3 :: 2010-2011 :: Programmation Objet avec Java ::
[LOGO]

3. 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 que des PolyLine différentes puissent être définies par un nombre de points différent mais que le nombre maximum de points soit défini lors de la création de chaque PolyLine.
Pour définir les points de la PolyLine on écrira 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 champ statique ?
  2. Ecrire 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é, que va-t-il se passer ?
  3. Ecrire une méthode pointCapacity renvoyant le nombre de points maximum de la PolyLine.
  4. Qu'est-ce que la classe doit 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. Ecrire une méthode pointCount qui renvoie le nombre de points constituant actuellement la PolyLine.
  6. Ecrire 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 PolyLyne 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. Réécrire le constructeur et la méthode add.
  2. Comment enlever le warning que le compilateur signale sur la méthode linkedList.add ?
  3. Que faire de la méthode pointCapacity ?
  4. [A 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é de Bruno, Alice ou Jean.
Alice a pour animal préféré : edith le singe.
Bruno a pour animal préféré : izard le chamois.
Jean a pour animal préféré : gold le poisson rouge.