Présentation du projet
Fait partie de la section Programmation orientée objet du Journey GDScript de Coddy. Leçon 56 sur 65.
Défi
MoyenDans ce projet, tu construis un système de gestion de bibliothèque en six étapes : une bibliothèque, des livres et des utilisateurs, les emprunts, la recherche, les statistiques et les retours. Chaque étape commence à partir de tes fichiers de l’étape précédente.
Cette étape crée la classe Library dans library.gd. Le code de départ déclare déjà ses trois propriétés :
library_name: le nom de la bibliothèquebooksetusers: deuxArray[String]initialement vides. Pour le moment, elles contiennent des titres et des noms d’utilisateurs.
Complète les deux méthodes :
- Le constructeur
_init(library_name)stocke le nom dans la propriétélibrary_name. _to_string()renvoieNAME Library (books: N, users: M), oùNetMsont les tailles des deux tableaux.
Le code fourni lit le nom de la bibliothèque sur la première ligne, puis une commande par ligne : book TITLE et user NAME ajoutent des éléments aux tableaux, info affiche les trois propriétés et show affiche la bibliothèque. Pour cette entrée :
Community
info
book Dune
user Ada
showla sortie est :
Name: Community
Books: 0
Users: 0
Community Library (books: 1, users: 1)Ton code va dans library.gd. main.gd contient le code fourni pour les entrées/sorties et ne peut pas être modifié.
Essayez vous-même
extends Node
func _ready():
# Code d'entrée/sortie fourni : conservez-le tel quel
var library := Library.new(OS.read_string_from_stdin())
var line := OS.read_string_from_stdin()
while line != "":
var parts := line.split(" ", true, 1)
match parts[0]:
"book":
library.books.append(parts[1])
"user":
library.users.append(parts[1])
"info":
print("Name: ", library.library_name)
print("Books: ", library.books.size())
print("Users: ", library.users.size())
"show":
print(library)
line = OS.read_string_from_stdin()
Toutes les leçons de Programmation orientée objet
1Fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses et objetsLe mot-clé selfMéthodesPropriétésConstructeur (_init)Récapitulatif - Calculatrice simple4Polymorphisme
Retour sur la redéfinition des méthodesTypage canardClasses et méthodes abstraitesConception d’interfacesRécapitulatif – Calculateur de formes7Signaux
Qu’est-ce qu’un signal ?Déclarer et émettreSe connecter aux signauxSignaux avec argumentsRécapitulatif - système de santé10Patrons de conception, partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode modèlePatron ÉtatPatron Composite2Propriétés de classe
Variables d’instance et variables statiquesFonctions statiquesSetters de propriétésGetters de propriétésPrivé par conventionRécapitulatif - Gestionnaire de comptes bancaires5Encapsulation
Membres publics et privésValidation avec les méthodes setterMasquage de l’informationPropriétés en lecture seuleRécapitulatif - Système de dossiers étudiants8Concepts avancés de la POO
Composition ou héritageClasses internesLes nœuds comme composantsRefCounted ou NodeEnums dans les classes11Projet : Gestion de bibliothèque
Présentation du projetClasses Livre et Utilisateur3Héritage
Héritage de baseLe mot-clé superRedéfinition de méthodesChaînes d’héritageVérifier les types avec isRécapitulatif – Hiérarchie des employés6Méthodes spéciales
Introduction aux méthodes virtuellesLa méthode _to_stringItérateurs personnalisésRécapitulatif – Liste personnalisée9Patrons de conception, partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron StrategyEntraînez-vous par vous-même : Compilateur GDScript en ligne