Récapitulatif - Gestionnaire de comptes bancaires
Fait partie de la section Programmation orientée objet du Journey GDScript de Coddy. Leçon 14 sur 65.
Défi
MoyenÉcris la classe BankAccount dans bank_account.gd. Elle rassemble tout ce que tu as appris dans ce chapitre.
- Une variable
intstatiqueinterest_percentqui commence à2, partagée par tous les comptes - Deux propriétés privées :
_owner_name(uneString) et_balance(unintqui commence à0) - Une propriété en lecture seule
owner_namedont le getter renvoie_owner_name - Une propriété
balancedont le getter renvoie_balanceet dont le setter afficheBalance cannot be negativepour une valeur négative et stocke sinon la valeur dans_balance - Le constructeur
_init(account_owner, start_balance)enregistre le propriétaire et attribuestart_balanceàbalance, afin que le setter la vérifie
Et les méthodes suivantes :
deposit(amount): afficheDeposit amount must be positiveet renvoiefalselorsqueamountest inférieur ou égal à0; sinon, ajoute cette somme et renvoietruewithdraw(amount): afficheWithdrawal amount must be positiveet renvoiefalselorsqueamountest inférieur ou égal à0, afficheInsufficient fundset renvoiefalselorsqu’il est supérieur au solde ; sinon, soustrait cette somme et renvoietrueapply_interest(): ajoute_balance * interest_percent / 100(en dollars entiers) au solde et renvoie les intérêtsdisplay_info(): affiche trois lignes :Account Owner: NAME,Balance: $BALANCEetInterest Rate: PERCENT%
Le code fourni lit owner start_balance, le nombre de commandes qui suivent, ainsi que les commandes deposit N, withdraw N, set N (attribue une valeur à balance), interest, rate N (définit BankAccount.interest_percent) et info. Il affiche une ligne pour chaque dépôt, retrait et paiement d’intérêts réussi, ainsi que le solde du propriétaire à la fin. Pour Coddy 1000 et les commandes deposit 500, withdraw 200, interest, info, set 5000 et withdraw 10000, il affiche :
Deposited $500
Withdrew $200
Interest earned: $26
Account Owner: Coddy
Balance: $1326
Interest Rate: 2%
Insufficient funds
Coddy has $5000Ton code doit être placé dans bank_account.gd. main.gd contient le code fourni pour les entrées et sorties et ne peut pas être modifié.
Essayez vous-même
extends Node
func _ready():
# Code d'entrée/sortie fourni : gardez-le tel quel
var first := OS.read_string_from_stdin().split(" ")
var account := BankAccount.new(first[0], int(first[1]))
var count := int(OS.read_string_from_stdin())
for i in count:
var parts := OS.read_string_from_stdin().split(" ")
match parts[0]:
"deposit":
if account.deposit(int(parts[1])):
print("Deposited $%s" % parts[1])
"withdraw":
if account.withdraw(int(parts[1])):
print("Withdrew $%s" % parts[1])
"set":
account.balance = int(parts[1])
"interest":
print("Interest earned: $%d" % account.apply_interest())
"rate":
BankAccount.interest_percent = int(parts[1])
"info":
account.display_info()
print("%s has $%d" % [account.owner_name, account.balance])
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 classes3Hé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