Compléter la classe Book
Dans cet exercice, vous allez créer l'un des composants fondamentaux d'un système de gestion de bibliothèque. Cette tâche vous permettra de mettre en pratique les concepts de la programmation orientée objet en Java, notamment la conception de classes, l'implémentation de méthodes et la gestion d'état. En relevant ce défi, vous acquerrez une expérience précieuse dans la création d'applications concrètes. Plongeons dans l'univers des livres virtuels !
Tâches
- Ouvrez le fichier pré-créé
Book.java situé dans le répertoire ~/project.
- Repérez les commentaires TODO dans le code.
- Ajoutez le code manquant pour compléter la classe
Book conformément aux exigences.
Exigences
- Le fichier
Book.java doit déjà être présent dans le répertoire ~/project.
- Complétez le constructeur pour initialiser tous les champs (title, author, publicationYear et isAvailable).
- Implémentez la méthode
borrowBook() :
- Si le livre est disponible, passez isAvailable à false et retournez true.
- Si le livre n'est pas disponible, retournez false.
- Implémentez la méthode
returnBook() :
- Passez isAvailable à true.
- Implémentez la méthode
getFormattedBookDetails() :
- Retournez une chaîne de caractères contenant le titre, l'auteur et l'année de publication du livre.
- Le format doit être : "Title by Author (Year)"
Exemple
Une fois correctement complété, le code suivant dans la méthode main :
Book book = new Book("Java Programming", "John Doe", 2023);
System.out.println(book.getFormattedBookDetails());
System.out.println("Is book available? " + book.isAvailable());
boolean borrowed = book.borrowBook();
System.out.println("Book borrowed successfully? " + borrowed);
System.out.println("Is book available now? " + book.isAvailable());
book.returnBook();
System.out.println("Is book available after return? " + book.isAvailable());
Devrait produire une sortie similaire à celle-ci :
cd ~/project
javac Book.java
java Book
Exemple de sortie :
Java Programming by John Doe (2023)
Is book available? true
Book borrowed successfully? true
Is book available now? false
Is book available after return? true