Informations du compte
Fait partie de la section Object Oriented Programming du Journey Lua de Coddy — leçon 23 sur 70.
Défi
FacileVotre banque numérique devient plus professionnelle ! Maintenant, faisons en sorte que vos comptes s'affichent correctement lorsqu'ils sont imprimés. En ajoutant une métaméthode __tostring, vous pouvez contrôler exactement comment un compte apparaît — en affichant à la fois un identifiant de compte et le solde actuel dans un format propre et lisible.
Vous continuerez à construire sur vos fichiers existants :
Account.lua: Étendez votre classe Account avec deux nouvelles fonctionnalités :- Modifiez le constructeur
:new()pour accepter un paramètreidqui identifie chaque compte - Ajoutez une métaméthode
__tostringqui retourne une chaîne formatée affichant les informations du compte
- Modifiez le constructeur
main.lua: Créez des comptes avec des identifiants et démontrez comment ils s'affichent lorsqu'ils sont imprimés.
La méthode __tostring doit retourner une chaîne dans ce format exact :
Account [ID]: Balance = BALANCEOù ID est l'identifiant du compte et BALANCE est le solde actuel.
Vous recevrez quatre entrées :
- L'identifiant du premier compte
- Le montant du dépôt du premier compte
- L'identifiant du deuxième compte
- Le montant du dépôt du deuxième compte
Dans votre fichier principal, créez deux comptes avec les identifiants donnés, déposez les montants respectifs dans chacun, puis imprimez chaque compte directement en utilisant print(). La métaméthode __tostring sera automatiquement appelée lorsque vous imprimerez l'objet compte.
Par exemple, si les entrées sont 1001, 500, 1002 et 750, la sortie devrait être :
Account [1001]: Balance = 500
Account [1002]: Balance = 750Chaque compte a désormais une identité unique et peut se décrire clairement — une expérience bancaire beaucoup plus professionnelle !
Essayez vous-même
-- Requiert le module Account
local Account = require('Account')
-- Lit les quatre entrées
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())
-- Crée deux comptes avec les identifiants
local account1 = Account:new(id1)
local account2 = Account:new(id2)
-- Dépose les montants respectifs
account1:deposit(deposit1)
account2:deposit(deposit2)
-- Affiche chaque compte (utilise __tostring)
print(account1)
print(account2)
Toutes les leçons de Object Oriented Programming
1Le concept de « self »
Tables avec fonctions« self » expliciteLa syntaxe avec deux-pointsPoint vs deux-pointsRécapitulatif - Point mobile4Projet : Banque numérique
Configuration du projetMéthode de dépôt7Polymorphisme et Redéfinition
Redéfinition de méthodesAppeler des méthodes parentesDuck TypingInterface communeVérification du typeRécapitulatif - Rôles des employés10Projet : Gestionnaire de formes
Configuration du projetClasse Rectangle2Modèle de prototype de classe
Le concept de prototypeLiaison avec __indexLe constructeur :new()Initialisation des attributsInstances indépendantesRécapitulatif - Usine de voitures5Surcharge d'opérateurs en POO
Additionner des objetsSoustraire des objetsConcaténer des objetsComparer des objets (<, >)Récapitulatif - Calculs de portefeuille8Encapsulation
Conventions de nommageClosures pour la confidentialitéAccès via les ClosuresTables en lecture seuleLogique de validationRécapitulatif - Coffre-fort sécurisé11Patrons de conception (Lite)
Fonctions FactoryTable SingletonPatron IteratorObserver (Écouteur)Récapitulatif - Logger Factory3État et comportement des objets
Variables d'instanceMéthodes GetterMéthodes SetterPropriétés calculéesFormatage de chaînesVérifications d'égalitéRécapitulatif - Note de l'étudiant6Bases de l'héritage
Mise en place de l'héritageHériter des méthodesÉtendre le constructeurAjouter des méthodes enfantsPartagé vs UniqueRécapitulatif - Hiérarchie des formes