:: Enseignements :: IMAC :: 2eme année :: 2008-2009 :: Programmation Objet avec Java ::
[LOGO]

Interfaces, listes, et Iterable


Exercice 1 - De la bibliothèque à la médiathèque

Une bibliothèque c'est bien, mais une médiathèque, c'est mieux. On souhaite diversifier les médias proposés, qui ont en communs certaines propriétés : ils ont tous un titre et un prix, ce dernier pouvant être modifié, où fourni après application d'une réduction.
  1. Ecrire une interface MediaBuyable qui contient les définitions de méthodes :
    1. String getTitle(); qui retourne le titre du média
    2. double getPrice(); qui retourne le prix du média
    3. double getReducedPrice(double percent); qui retourne le prix du média, après réduction de percent pourcents
    4. Faites en sorte que Book et Comic implantent cette interface
    5. Creer les classes CompactDisc et DigitalVideoDisc qui implantent cette interface
    6. Creer la classe BookIntegrale, representant une série de livres d'un même auteur, qui implante cette interface (le prix est la somme des prix de tous les livres)
    7. Modifier la classe Library pour qu'elle puisse contenir n'importe quel média

    Exercice 2 - Les listes chaînées

    Le but de cet exercice est d'écrire une implantation de liste de chaînée en utilisant les paquetages.

    Pour la suite de l'exercice, l'ensemble des classes créées devra être créé dans le paquetage fr.umlv.datas.

    Nous allons dans un premier temps, créer une liste chaînée de MediaBuyable
    1. Créer une classe fr.umlv.datas.Link correspondant à un maillon de la liste chaînée. (donc un fichier Link.java dans le répertoire src/fr/umlv/datas
    2. Créer une classe fr.umlv.datas.LinkedLink qui maintient une référence sur le premier maillon de la liste.
      Cette classe devra définir les méthodes :
      1. add(MediaBuyable media) qui ajoute un élément avant le premier élément.
      2. size() qui affiche le nombre d'éléments de la liste.
      3. toString() qui affiche le contenu de la liste.
      4. MediaBuyable get(int i) qui retourne le ieme élément de la liste. Si la liste ne contient pas assez d'éléments, la fonction envoie une exception (java.lang.IndexOutOfBoundsException)
    Dans un premier temps, tester ces fonctions dans un main ecrit dans la classe LinkedLink. Utiliser ensuite cette classe dans Library afin d'avoir une capacité illimitée.

    Exercice 3 - Iterable

    Modifiez la classe LinkedLink afin qu'elle implémente l'interface Iterable.