:: Enseignements :: Licence :: L3 :: 2009-2010 :: Programmation Objet avec Java ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) |
Paquetage, structure de données, relation d'implantation
|
Exercice 1 - Les liste chaînée
Le but de cet exercise est d'écrire une implantation de liste de chaînée.
Les sources (les .java) seront
stockées dans un répertoire nommé src et les classes
dans un répertoire classes.
A configurer dans Window > Preferences > Java > Build Path
sous Eclipse.
Pour la suite de l'exercise, l'ensemble des classes créées
devra être créé dans le paquetage fr.umlv.data.
Nous allons dans un premier temps, créer une liste chaînée de
chaîne de caractères.
-
Créer une classe fr.umlv.data.Link correspondant à un
maillon de la liste chaînée.
(donc un fichier Link.java dans le paquetage fr.umlv.data
donc dans le répertoire src/fr/umlv/data)
-
Quelle est la commande pour exécuter le main
de la classe fr.umlv.data.Link ?
-
Créer une classe fr.umlv.data.LinkedLink qui permettra
de manipuler une liste chainée sans que l'utilisateur
est à manipuler des maillons.
Cette classe maintient
une référence sur le premier maillon de la liste
et possède les méthodes suivantes :
-
add(String text) qui ajoute un élément
avant le premier élément.
-
size() qui affiche le nombre d'éléments de
la liste.
-
toString() qui affiche le contenu de
la liste.
Pour tester ses classes, créer une classe Main
sans paquetage (on dit dans le paquetage par défaut).
Exercice 2 - liste chainee (suite)
-
Renommer la classe Main en fr.umlv.data.main.Main.
Dans quelle répertoire doit-on se placer et quelle est la commande pour exécuter
le main dans une console hors d'eclipse ?
-
Implanter String get(int index) qui renvoie la
indexième chaîne de caractère.
Que doit-on faire si l'index est invalide ?
Pourquoi serait-il logique de changer l'implantation de
size pour que la méthode s'exécute en temps constant ?
Ré-implanter size.
-
Ajouter à la classe Main, une méthode textSum
renvoyant la somme en caractères de tous les élements de la liste.
-
Changer la classe fr.umlv.data.LinkedLink
pour une implantation plus générique à base d'Object.
Que doit-on changer dans la méthode textSum ?
-
Implanter la méthode boolean contains(Object o) indiquant si un objet
est où non contenu dans la liste chaînée.
Exercice 3 - Générification de LinkedLink
Le but de cet exercise est de générifier les classes
fr.umlv.datas.LinkedLink et fr.umlv.datas.Link
-
Paramétrer la classe fr.umlv.data.LinkedLink pour que celle-ci
soit générique.
-
Modifier la classe fr.umlv.data.main.Main
en conséquence.
© Université de Marne-la-Vallée