TP2 Java
Problème :
Première partie :
7) Insérer et exécuter dans votre fonction main l'instruction System.out.println (livre), avec livre
représente un des livres créés.
8) Redéfinir la méthode toString (), de la classe java.lang.Object, afin d’avoir une représentation
d’un objet de la classe « Livre » de cette façon : « C’est un livre de titre : Notre Dame de Paris
écrit par l’auteur Victor Hugo et contenant 150 pages ». Exécuter à nouveau votre programme
et vérifier ce qui est affiché par l'instruction System.out.println (livre). Quelle est votre
conclusion ?
9) Modifier la méthode afficheToi () de la classe « Livre » pour utiliser la méthode toString ().
10) Exécuter à nouveau votre programme pour vérifier le bon fonctionnement de la méthode
toString().
11) Supprimer, provisoirement, le seul constructeur « Livre (String unAuteur, String unTitre) »
de la classe Livre. Est-ce qu’il est possible de créer un nouveau livre dans la méthode main sans
insérer un nouveau constructeur dans la classe « Livre »? Si oui, créer un nouveau livre écrit par
Victor Hugo et afficher son titre et son auteur.
12) Remettre dans la classe « Livre » le constructeur que vous avez supprimé. Que remarquez vous
au niveau de la méthode main, expliquer pourquoi ?
13) Ajouter à la classe « Livre » deux autres constructeurs:
a. Un constructeur sans paramètre,
b. Un constructeur a 3 paramètres : l’auteur, le titre et le nombre de pages,
14) Utiliser les différents constructeurs ainsi que d'autres méthodes de votre classe pour créer deux
livres de plusieurs pages dans votre méthode main.
15) Exécuter à nouveau votre programme.
Deuxième partie :
On considère la classe « Livre » créée dans la partie précédente. Afin de gérer des livres dans une
étagère, on vous demande de créer en premier temps une autre classe, nommée « Etagere».
Remarque : utiliser un tableau pour gérer les livres, avec le nombre de livres est fixé pour chaque
étagère.
Ensuite, ajouter à la classe « Etagere » :
- Etagere (int) : un constructeur représentant le nombre de livres que peut contenir l'étagère.
- int getNbLivres () : une méthode retournant le nombre de livres que contient l’étagère.
- int getNbLivresMax () : une méthode fournissant le nombre maximal de livres que peut contenir
l'étagère.
ENSAF- 2ISD Année : 2021/2022
- void ajouter (Livre) : une méthode ajoutant un livre après le dernier livre déjà ajouté à l’étagère.
Le premier livre ajouté doit être mis au début de l'étagère, c.-à-d. à la première position du tableau.
Il est impossible de mettre des livres dans une étagère pleine.
- Redéfinir la méthode toString (), afin d’avoir une représentation d’un objet de la classe
« Etagere ».
- Livre getLivre (int) : une méthode retournant la référence sur un livre (instance de Livre) dont on
fournit la position sur l'étagère. La première position d'une étagère est désignée par l’indice 1 alors
que la première position du tableau désignée par l’indice 0.
- int chercher (String, String) : une méthode cherchant un livre et retournant sa position dans
l'étagère. Chaque livre est identifié par son titre et son auteur. Si le livre n’est pas dans l’étagère la
méthode retourne 0 et s'il existe plus d’un livre contenant le même titre et le même auteur cette
méthode retourne celui qui a le plus petit indice.
- chercherLivres (String, String) : Une méthode ayant une fonctionnalité semblable à la précédente
et retournant un tableau de positions s'il existe plus d’un livre contenant le même titre et le même
auteur. Appeler, si possible, la méthode « chercher (String, String) ». La taille du tableau est le
nombre de livres trouvés dans l’étagère.
- chercherAuteurs ( String) : Une méthode cherchant tous les livres d'un auteur et retournant un
tableau de ces livres.
- chercherTitres ( String) : Une méthode cherchant tous les livres qui ont un certain titre et
retournant un tableau de ces livres.
- Livre enleverLivre (int) : une méthode permettant de supprimer un livre dont on fournit sa
position sur l'étagère.
- Livre enleverLivre (String, String) : une méthode permettant de supprimer un livre dont on
fournit son auteur et son titre et invoquant la méthode « chercherLivres (String, String)».
Noté bien : les deux précédentes méthodes retournent le livre enlevé, ou null s’il n’y a aucun
livre trouvé dans l’étagère. Et en cas de suppression d’un livre arranger à nouveau l’étagère (décaler
les livres vers le début).
- Dans le cas ou l’étagère contient de nombreux livres, son arrangement à nouveau nécessite plusieurs
décalages de ces livres vers le début. Pour éviter toutes ces opérations, réécrire les deux méthodes
précédentes afin de placer le dernier livre à la place du livre enlevé. Donner « enlever » comme
nom des nouvelles versions.
Pour tester le travail que vous avez réalisé, écrire un programme d’essai permettant de :
a. Créer des livres et deux étagères.
b. Ajouter quelques livres dans les étagères.
ENSAF- 2ISD Année : 2021/2022
Remarque : commencer par écrire le constructeur, la méthode pour ajouter un livre et la méthode
toString() et teste. N'écrire les autres méthodes que lorsque l'ajout de livre fonctionne correctement.