Présentation du projet et conception UML
Fait partie de la section Programmation Orientée Objet du Journey Java de Coddy — leçon 77 sur 87.
Défi
FacileCommençons le projet de Système de Gestion de Bibliothèque en construisant les fondations — les classes d'entités de base dont tout le reste dépendra. Ce premier défi se concentre sur la création de classes Book et User bien structurées qui suivent la conception UML de la leçon.
Vous organiserez votre code sur trois fichiers :
Book.java: Créez la classeBookqui représente un livre de bibliothèque. Chaque livre doit avoir des champs privés pourisbn(String),title(String),author(String), etisAvailable(boolean, par défaut àtrue). Incluez un constructeur qui accepte isbn, title, et author. Fournissez les méthodes getter appropriées pour tous les champs, et un setter pourisAvailable. Ajoutez une méthodegetDetails()qui retourne une chaîne formatée :[isbn] title by author.User.java: Créez la classeUserreprésentant un membre de la bibliothèque. Chaque utilisateur doit avoir des champs privés pourid(String) etname(String). Incluez un constructeur qui accepte les deux valeurs, et fournissez des méthodes getter pour chaque champ. Ajoutez une méthodetoString()qui retourne :User[id]: name.Main.java: Rassemblez vos classes pour démontrer qu'elles fonctionnent correctement. Vous recevrez quatre entrées : l'ISBN d'un livre, le titre, l'auteur, puis l'ID et le nom d'un utilisateur.Créez un
Bookavec les trois premières entrées et unUseravec les deux dernières entrées. Affichez les détails du livre en utilisantgetDetails(), puis affichez si le livre est disponible au formatAvailable: trueouAvailable: false. Enfin, affichez l'utilisateur en utilisant sa méthodetoString().
Vous recevrez cinq entrées dans l'ordre : ISBN (String), title (String), author (String), user ID (String), et user name (String).
Par exemple, avec les entrées 978-0-13-468599-1, Effective Java, Joshua Bloch, U001, et Alice Smith, votre sortie serait :
[978-0-13-468599-1] Effective Java by Joshua Bloch
Available: true
User[U001]: Alice SmithCes classes fondamentales serviront de briques de base pour l'ensemble du Système de Gestion de Bibliothèque. Dans les prochaines leçons, vous les étendrez avec des fonctionnalités d'emprunt, des capacités de recherche, et plus encore !
Essayez vous-même
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Lire les informations du livre
String isbn = scanner.nextLine();
String title = scanner.nextLine();
String author = scanner.nextLine();
// Lire les informations de l'utilisateur
String userId = scanner.nextLine();
String userName = scanner.nextLine();
// TODO: Créer un objet Book avec isbn, title, et author
// TODO: Créer un objet User avec userId et userName
// TODO: Afficher les détails du livre en utilisant getDetails()
// TODO: Afficher si le livre est disponible (format : "Available: true" ou "Available: false")
// TODO: Afficher l'utilisateur en utilisant toString()
}
}
Toutes les leçons de Programmation Orientée Objet
1Fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe mot-clé thisMéthodesChamps (Attributs)Méthode constructeurSurcharge de constructeurRécapitulatif - Calculatrice simple4Héritage
Héritage de base (extends)Le mot-clé superRedéfinition de méthode (@Override)Chaînage de constructeursLa classe ObjectHéritage simple et multiniveauPourquoi pas d'héritage multiple de classesRécapitulatif - Hiérarchie des employés7Méthodes spéciales et classe Object
Méthode toString()equals() et hashCode()Méthode clone()compareTo() et ComparableInterface ComparatorRécapitulatif - Tri personnalisé10Gestion des exceptions en POO
Hiérarchie des classes d'exceptionExceptions personnaliséesErreurs Checked vs UncheckedPattern Try-with-resourcesRécapitulatif - Utilisateur validé13Projet : Gestion de bibliothèque
Présentation du projet et conception UMLClasses Livre et Utilisateur2Modificateurs d'accès et Encapsulation
Aperçu des niveaux d'accèsMéthodes Getter et SetterMasquage d'informationsLe mot-clé finalRécapitulatif - Gestionnaire de compte bancaire5Polymorphisme
Bases de la surcharge de méthodesRedéfinition de méthodes (Run-Time)Upcasting et DowncastingL'opérateur instanceofClasses et méthodes abstraitesRécapitulatif - Calculateur de formes8Concepts avancés de la POO
Composition vs HéritageAgrégation vs CompositionClasses internes, imbriquées et anonymesEnums et méthodes d'EnumRecords (Java 16+)Classes scellées (Java 17+)11Patrons de conception, partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FabriquePatron MonteurPatron ObservateurPatron Stratégie3Propriétés de classe et membres statiques
Variables d'instance vs variables statiquesMéthodes statiquesBlocs statiquesConstantes (static final)Récapitulatif - Compteur et utilitaire6Interfaces et Classes Abstraites
Introduction aux InterfacesImplémentation d'InterfacesImplémentation d'Interfaces MultiplesDefault et Static dans les InterfacesClasses Abstraites vs InterfacesInterfaces FonctionnellesRécapitulatif - Système de Paiement9La généricité
Introduction à la généricitéClasses génériquesMéthodes génériquesParamètres de type bornésWildcards (?, extends, super)Récapitulatif - Conteneur générique12Patrons de conception, partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Template MethodPatron ÉtatPatron CompositePatron Itérateur