Défi : Création d'une classe Book en Java

JavaBeginner
Pratiquer maintenant

Introduction

Bienvenue à la bibliothèque JavaTown, la bibliothèque numérique la plus avancée du monde de la programmation ! En tant que nouveau développeur logiciel, votre première mission consiste à participer à la création d'un système de catalogue numérique pour l'immense collection de livres techniques de la bibliothèque.

Votre mission, si vous l'acceptez, est de compléter la classe Book qui servira à représenter chaque ouvrage dans le système. Cette classe stockera les informations essentielles de chaque livre et fournira des méthodes pour interagir avec ces données.

Êtes-vous prêt à faire entrer la bibliothèque JavaTown dans l'ère numérique ? C'est parti pour le codage !

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
✨ Vérifier la solution et pratiquer

Résumé

Dans ce défi, vous avez créé une classe Book qui illustre les concepts clés de la programmation orientée objet en Java :

  1. Encapsulation : La classe Book regroupe les données (title, author, publicationYear, isAvailable) et les comportements (borrowBook, returnBook, getFormattedBookDetails) relatifs à un livre.
  2. Constructeur : Vous avez implémenté un constructeur pour initialiser les propriétés du livre lors de la création d'un nouvel objet Book.
  3. Méthodes : Vous avez créé des méthodes représentant les actions qu'un livre peut subir (emprunt et retour) ainsi qu'une méthode pour récupérer les informations formatées du livre.
  4. Gestion d'état : La propriété isAvailable ainsi que les méthodes borrowBook et returnBook démontrent comment un objet peut gérer son état interne.

Cette classe Book constitue la base d'un système de gestion de bibliothèque. Dans une application réelle, vous pourriez étendre ce concept en créant une classe Library gérant une collection d'objets Book, ou en ajoutant des règles d'emprunt plus complexes.

N'oubliez pas que la programmation orientée objet consiste à modéliser des concepts du monde réel sous forme de code. Tout au long de votre apprentissage de Java, cherchez des occasions de représenter les entités comme des objets possédant à la fois des données et des comportements.

Continuez à pratiquer et à expérimenter. Essayez d'ajouter d'autres méthodes à la classe Book, comme une méthode pour mettre à jour le titre ou l'auteur, ou créez une classe Library capable de stocker et de gérer plusieurs objets Book. Plus vous coderez, plus vous serez à l'aise avec Java et les concepts de la POO.