Informations du compte
Fait partie de la section Programmation orientée objet du Journey Lua de Coddy. Leçon 23 sur 70.
Défi
FacileVotre banque numérique devient de plus en plus professionnelle ! Maintenant, faisons en sorte que vos comptes s’affichent correctement lorsqu’ils sont imprimés. En ajoutant une méthode métaméthode __tostring, vous pouvez contrôler exactement l’apparence d’un compte : afficher à la fois un identifiant de compte et le solde actuel dans un format clair et lisible.
Vous allez continuer à travailler 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 renvoie une chaîne formatée affichant les informations du compte
- Modifiez le constructeur
main.lua: créez des comptes avec des identifiants et montrez comment ils s’affichent lorsqu’ils sont imprimés.
La méthode __tostring doit renvoyer 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 fournis, déposez les montants correspondants sur chacun d’eux, puis imprimez chaque compte directement à l’aide de 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 possède désormais une identité unique et peut se décrire clairement : une expérience bancaire bien plus professionnelle !
Essayez vous-même
-- Charger le module Account
local Account = require('Account')
-- Lire les quatre entrées
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())
-- Créer deux comptes avec des IDs
local account1 = Account:new(id1)
local account2 = Account:new(id2)
-- Déposer les montants respectifs
account1:deposit(deposit1)
account2:deposit(deposit2)
-- Afficher chaque compte (utilise __tostring)
print(account1)
print(account2)
Toutes les leçons de Programmation orientée objet
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 RectangleClasse CercleMéthode PérimètreCollection de formesAire totaleFiltrer les formes2Modè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 formesEntraînez-vous par vous-même : Compilateur Lua en ligne