Menu
Coddy logo textTech

Informations du compte

Fait partie de la section Programmation orientée objet du Journey Lua de Coddy. Leçon 23 sur 70.

challenge icon

Défi

Facile

Votre 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ètre id qui identifie chaque compte
    • Ajoutez une métaméthode __tostring qui renvoie une chaîne formatée affichant les informations du compte
    Conservez toutes vos fonctionnalités existantes (les méthodes deposit, withdraw et getBalance).
  • 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 = BALANCE

ID est l’identifiant du compte et BALANCE est le solde actuel.

Vous recevrez quatre entrées :

  1. L’identifiant du premier compte
  2. Le montant du dépôt du premier compte
  3. L’identifiant du deuxième compte
  4. 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 = 750

Chaque 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

Entraînez-vous par vous-même : Compilateur Lua en ligne