Menu
Coddy logo textTech

Informações da Conta

Parte da seção Programação Orientada a Objetos do Journey de Lua da Coddy. Lição 23 de 70.

challenge icon

Desafio

Fácil

Seu Banco Digital está ficando mais profissional! Agora vamos fazer com que suas contas sejam exibidas de forma agradável quando impressas. Ao adicionar um método metamórfico __tostring, você pode controlar exatamente como uma conta aparece: mostrando tanto um ID da conta quanto o saldo atual em um formato limpo e legível.

Você continuará desenvolvendo com base nos seus arquivos existentes:

  • Account.lua: Estenda sua classe Account com dois novos recursos:
    • Modifique o construtor :new() para aceitar um parâmetro id que identifique cada conta
    • Adicione um método metamórfico __tostring que retorne uma string formatada mostrando as informações da conta
    Mantenha todas as funcionalidades existentes (métodos de depósito, saque e getBalance).
  • main.lua: Crie contas com IDs e demonstre como elas são exibidas quando impressas.

O método __tostring deve retornar uma string exatamente neste formato:

Account [ID]: Balance = BALANCE

Onde ID é o ID da conta e BALANCE é o saldo atual.

Você receberá quatro entradas:

  1. ID da primeira conta
  2. Valor do depósito da primeira conta
  3. ID da segunda conta
  4. Valor do depósito da segunda conta

Em seu arquivo principal, crie duas contas com os IDs fornecidos, deposite os respectivos valores em cada uma e, em seguida, imprima cada conta diretamente usando print(). O método metamórfico __tostring será chamado automaticamente quando você imprimir o objeto da conta.

Por exemplo, se as entradas forem 1001, 500, 1002 e 750, a saída deverá ser:

Account [1001]: Balance = 500
Account [1002]: Balance = 750

Agora cada conta tem uma identidade única e pode descrever a si mesma claramente: uma experiência bancária muito mais profissional!

Experimente você mesmo

-- Requer o módulo Account
local Account = require('Account')

-- Lê as quatro entradas
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())

-- Cria duas contas com IDs
local account1 = Account:new(id1)
local account2 = Account:new(id2)

-- Deposita os respectivos valores
account1:deposit(deposit1)
account2:deposit(deposit2)

-- Imprime cada conta (usa __tostring)
print(account1)
print(account2)

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de Lua online