Menu
Coddy logo textTech

Información de la cuenta

Parte de la sección Object Oriented Programming del Journey de Lua de Coddy — lección 23 de 70.

challenge icon

Desafío

Fácil

¡Tu Banco Digital se está volviendo más profesional! Ahora vamos a hacer que tus cuentas se muestren de forma agradable al imprimirlas. Al añadir un metamétodo __tostring, puedes controlar exactamente cómo aparece una cuenta, mostrando tanto un ID de cuenta como el saldo actual en un formato limpio y legible.

Continuarás construyendo sobre tus archivos existentes:

  • Account.lua: Extiende tu clase Account con dos nuevas características:
    • Modifica el constructor :new() para que acepte un parámetro id que identifique cada cuenta
    • Añade un metamétodo __tostring que devuelva una cadena formateada con la información de la cuenta
    Mantén toda tu funcionalidad existente (métodos deposit, withdraw y getBalance).
  • main.lua: Crea cuentas con IDs y demuestra cómo se muestran al imprimirlas.

El método __tostring debe devolver una cadena en este formato exacto:

Account [ID]: Balance = BALANCE

Donde ID es el ID de la cuenta y BALANCE es el saldo actual.

Recibirás cuatro entradas:

  1. ID de la primera cuenta
  2. Monto del depósito de la primera cuenta
  3. ID de la segunda cuenta
  4. Monto del depósito de la segunda cuenta

En tu archivo principal, crea dos cuentas con los IDs proporcionados, deposita los montos respectivos en cada una, y luego imprime cada cuenta directamente usando print(). El metamétodo __tostring se llamará automáticamente cuando imprimas el objeto de la cuenta.

Por ejemplo, si las entradas son 1001, 500, 1002, y 750, la salida debería ser:

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

Cada cuenta ahora tiene una identidad única y puede describirse a sí misma con claridad: ¡una experiencia bancaria mucho más profesional!

Pruébalo tú mismo

-- Requerir el módulo Account
local Account = require('Account')

-- Leer las cuatro entradas
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())

-- Crear dos cuentas con IDs
local account1 = Account:new(id1)
local account2 = Account:new(id2)

-- Depositar las cantidades respectivas
account1:deposit(deposit1)
account2:deposit(deposit2)

-- Imprimir cada cuenta (usa __tostring)
print(account1)
print(account2)

Todas las lecciones de Object Oriented Programming