cherchez une solution a cette empreinte et merci d'avance

Exercice 2
Partie 1
1. Dans une bibliothèque, un livre est défini par son titre, son auteur et le nombre de ses
pages. Créer la classe Livre
2. Ajoutez un accesseur pour la variable titre et la variable nbPages.
3. Ajouter un modificateur pour les variables auteur et titre.
4. Changez le modificateur de nbPages : il ne devra changer le nombre de pages que si
on lui passe en paramètre un nombre positif, et ne rien faire sinon, en affichant un
message d'erreur. On remarquera l'intérêt des variables private : on peut contrôler
leur modification dans les éventuelles méthodes qui permettent de les modifier.
5. Dans la méthode main,
o donnez le nombre de pages de chacun des 2 livres,
o faites afficher ces nombres de pages,
o calculez le nombre de pages total de ces 2 livres et affichez-le.
6. Dans la classe Livre, ajoutez une méthode afficheToi() qui affiche une
description du livre (auteur, titre et nombre de pages). Utilisez afficheToi() dans
la méthode main de TestLivre. Vérifiez le bon fonctionnement de la méthode en
lançant l'exécution de la classe TestLivre.
Partie 2
1. Enlevez (provisoirement) le seul constructeur de la classe Livre. Sans ajouter de
nouveau constructeur, peut-on quand même créer un nouveau livre dans la méthode
main ? Si c'est possible, créez un livre écrit par Victor Hugo et faites afficher son titre
et son auteur.
2. Remettez le constructeur que vous avez enlevé. Est-ce que le code de la méthode
main de la question précédente fonctionne toujours (testez) ?
3. Ajoutez 2 constructeurs pour avoir 3 constructeurs dans la classe :
o un constructeur qui n'a pas de paramètre,
o un qui prend en paramètre l'auteur et le titre du livre,
o et l'autre qui prend en plus le nombre de pages.
Utilisez les 3 constructeurs (et éventuellement d'autres méthodes) pour créer 3 livres
de 300 pages dans la méthode main de TestLivre.
4. Testez en lançant l'exécution.
Partie 3
1. Ajoutez un prix aux livres (de type Java double) avec 2 méthodes getPrix et
setPrix pour obtenir le prix et le modifier. Ajoutez au moins un constructeur qui
prend le prix en paramètre. Testez.
2. Si le prix d'un livre n'a pas été donné, la description du livre (toString()) devra
indiquer "Prix pas encore donné". Attention, un livre peut être gratuit (0 est une valeur
possible pour un prix) ; la valeur -1 indiquera que le prix n'a pas encore été donné.
3. On bloque complètement les prix : un prix ne peut être donné qu'une seule fois et ne
peut être modifié ensuite (une tentative pour changer le prix ne fait qu'afficher un
message d'erreur). Récrivez la méthode setPrix (et autre chose si besoin est). Vous
ajouterez une variable booléenne prixFixe (pour "prix fixé") qui indiquera que le
prix ne peut plus être modifié.
Faut-il écrire une méthode "setPrixFixe" pour modifier la variable booléenne ?
Ajoutez une méthode "isPrixFixe" qui renvoie vrai si le prix a déjà été fixé.
4. Dans la classe Livre écrivez une méthode d'instance compare pour comparer 2
livres sur leur nombre de pages.
compare prend un livre en paramètre et elle renvoie 0 si le livre a le même nombre
de pages que l'instance qui reçoit le message, 1 si l'instance courante ("this") a plus
de pages que le parametre et -1 sinon.
5. Dans la classe Livre, écrivez une méthode de classe compare2 pour comparer 2 livres
(passés en paramètres) sur leur nombre de pages.