Menu
Coddy logo textTech

Informations du compte

Fait partie de la section Object Oriented Programming du Journey Lua de Coddy — leçon 23 sur 70.

challenge icon

Défi

Facile

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

Chaque 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