TD Programmation orient´ee objet
Premi`ere partie : premiers pas dans la construction d’une filmoth`eque
L’objectif des premiers TD est de mettre en place les bases d’une application permettant de g´erer
une petit filmoth`eque en Java.
R´epondez aux questions suivantes :
1 Premiers pas (main)
Lancez Eclipse et cr´eez un nouveau projet intitul´e “Filmotheque”. Dans ce projet, cr´eez une nou-
velle classe Java nomm´ee “MaFilmotheque” et ajoutez la m´ethode main (comme vu en cours) pour que
le programme affiche “premier jour” `a l’´ecran. Pour ex´ecuter votre programme, vous pouvez utilisez
l’icˆone en forme de touche lecture en haut ou passer par le menu d´eroulant. Le r´esultat de l’ex´ecution
sera affich´e dans la console en bas de l’´ecran (pas d’interface graphique pour le moment, cf. TD 2).
2 Premi`eres questions (Lire)
Modifiez le programme pour qu’il demande la saisie d’un nombre `a l’utilisateur et qu’il affiche
simplement ce nombre `a l’´ecran. Pour cela, vous devrez importer dans votre projet, puis utiliser, la
classe Lire.java disponible librement en t´el´echargement sur le site du cours. N’h´esitez pas `a aller voir
le code Java de cette classe, mˆeme si vous n’avez pas encore toutes les clefs pour comprendre chaque
ligne du fichier.
3 Premi`eres choix (switch, m´ethodes)
Modifiez le programme pour qu’il propose `a l’´ecran un menu donnant le choix entre les propositions
suivantes : Cr´eer, Ouvrir, Sauvegarder, Afficher, Ins´erer, Supprimer, Rechercher, Quitter. Le plus
simple est d’associer un num´ero `a chacun de ces choix (1 pour Cr´eer, etc.). Pour chaque possibilit´e
offerte `a l’utilisateur, votre programme doit appeler une m´ethode (autre que le main) qui porte le nom
correspondant (exemple : la fonction creer() pour le choix “Cr´eer”, etc.). Chacune de ces fonctions
devra ˆetre static, du moins pour le moment.
Important : il n’est pas question ici de d´evelopper ces m´ethodes (´ecrire le code), mais juste de
mettre en place la structure. Pour l’instant, contentez-vous d’afficher `a l’´ecran un message qui donne
le choix qui a ´et´e r´ealis´e.
Voil`a le d´etail de chacune des actions possibles :
1. Cr´eer : cr´ee une nouvelle filmoth`eque, c’est-`a-dire un ensemble de films dans la collection ;
attention, cette action est `a r´ealiser une seule fois au d´ebut, quand la filmoth`eque n’existe pas
encore.
2. Ouvrir : charge une filmoth`eque existante qui a ´et´e enregistr´ee pr´ealablement sur le disque dur
de l’ordinateur.
3. Sauvegarder : sauvegarde la filmoth`eque courante sur le disque dur de l’ordinateur.
4. Ins´erer : ins`ere un nouveau film dans la filmoth`eque (cassette VHS ou DVD).
5. Supprimer : supprime un film de la filmoth`eque.
6. Rechercher : permet de recherche si un film existe en fonction du titre, ou mˆeme de mots-clefs,
entr´es par l’utilisateur.
7. Afficher : affiche le contenu total de la filmoth`eque.
8. Quiter : quitte l’application
Master Informatique 1`ere ann´ee – Universit´e Lumi`ere (Lyon 2) c
2013
Responsable du cours : Julien Velcin – Chare de TD : Adrien Guille
4 Premi`ere boucle (do...while)
Modifiez le programme pour qu’il (re-)propose le menu tant que l’utilisateur n’a pas choisi de
quitter.
5 Premi`eres classes (champs et m´ethodes)
Cr´eez une classe Film.java qui comporte tous les attributs n´ecessaires `a la gestion d’un film (pas
d’une cassette ou d’un dvd) `a savoir : titre, ann´ee, r´ealisateur, genre. Cette classe doit ´egalement
comporter deux m´ethodes importantes, `a savoir : afficher et saisir. La m´ethode afficher affiche
`a l’´ecran les informations relatives au film (son titre, son ann´ee, etc.). La m´ethode saisir utilise les
m´ethodes de la classe Lire et demande `a l’utilisateur de rentrer ces diff´erentes informations `a la suite.
6 On cr´ee son premier objet
Revenez dans la classe MaFilmotheque pour pouvoir cr´eer votre premier objet qui sera de type
Film. Pour cela, enrichissez votre m´ethode inserer() en d´eclarant un objet local fde type Film,
allouez-lui de la m´emoire grˆace `a new et appelez la m´ethode saisir() associ´ee `a f. Le probl`eme :
l’objet fde la classe Film ainsi cr´e n’existe pas pendant tr`es longtemps. . . Nous reviendrons sur ce
probl`eme plus tard.
7 Premi`eres v´erifications
Toujours dans la classe principale, testez votre programme en faisant afficher le contenu du film f
`a l’aide de la m´ethode afficher().
8 Premier oubli (protection des champs)
Passez les champs de la classe Film `a private. Mettez des accesseurs et des mutateurs pour
pouvoir acc´eder `a ces champs.
9 Un peu de Java (surcharge)
Dans la classe Film, ajouter une fonction public String toString() qui renvoie une chaˆıne de
caract`eres correspondant `a l’affichage du film. Testez cette fonction dans la classe principale avec la
commande System.out.println(f) (si f est votre objet de classe Film). Votre m´ethode afficher()
est devenue obsol`ete et vous pouvez maintenant la supprimer !
10 Ranger les objets dans une collection (Vector)
Cr´eez une nouvelle classe Java intitul´ee ListeFilms qui sera charg´ee de g´erer la collection de vos
films. Dans cette classe, ajoutez un champ de type Vector dans lequel seront stock´es les films. Il
faudra peut-ˆetre ajouter, dans l’en-tˆete de la classe, la ligne import java.util.Vector pour pouvoir
utiliser cette classe de l’API Java. Dans une m´ethode initialise(), initialisez cet objet grˆace `a
new. Ensuite, cr´eez une m´ethode ajoute(Film) qui permet d’ajouter l’objet film entr´e en param`etre
dans la collection. Enfin, revenez dans la classe principale et ajoutez les quelques lignes n´ecessaires `a
l’utilisation de cette nouvelle classe. Il faut notamment remplir la m´ethode cr´eer().
11 Pour les plus avanc´es : une collection tri´ee (TreeSet, interface)
Utilisez la classe TreeSet `a la place de la classe pr´ec´edente pour g´erer l’ensemble de vos films. Au
sein du TreeSet, les films sont tri´es par ordre alphab´etique des titres (`a titre ´egale, des r´ealisateurs).
Il faut donc penser `a ce que la classe Film impl´emente l’interface Comparable.
2
12 Testez votre collection
A pr´esent, lorsque vous cr´eez un nouveau film, vous l’ins´erez aussitˆot dans la collection pour ne
pas qu’il soit perdu dans l’hyperespace num´erique. La seule mani`ere de tester votre programme et
d’impl´ementer la m´ethode affficher() qui permet d’afficher `a l’´ecran l’int´egralit´e des films de la
collection. Pour cela, il sera n´ecessaire d’enrichir la classe ListeFilms avec une m´ethode qui explore
la collection (Vector ou TreeSet), et ce `a l’aide d’une boucle.
13 Constructeur...
Supprimez la m´ethode de saisie de la classe Film. A la place, cr´eez un constructeur qui prend
comme param`etres les 4 informations : titre, r´ealisateur, ann´ee, genre. Il faut alors modifier la m´ethode
ins´erer() de la classe principale afin de pouvoir cr´eer l’objet Film en appelant directement le bon
constructeur.
14 ...et destructeur
Enfin, cr´eez une fonction de suppression d’un film dans la classe ListeFilms. Cette m´ethode affiche
d’abord toute la filmoth`eque, en attribuant `a chaque film un num´ero. Puis elle demande `a l’utilisateur
le num´ero du film qu’il veut supprimer et, enfin, elle supprime le film correspondant.
F´elicitations d’ˆetre arriv´es jusque l`a !
3
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !