Menu
Coddy logo textTech

Obtener saldo

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

challenge icon

Desafío

Fácil

¡Tu Banco Digital realmente está tomando forma! Las cuentas pueden recibir depósitos y gestionar retiros con una verificación de fondos adecuada. Ahora vamos a añadir un método getter para recuperar el saldo y luego pondremos todo junto en un escenario bancario realista.

Continuarás construyendo sobre tus archivos existentes:

  • Account.lua: Añade un método :getBalance() que devuelva el saldo actual. Esto sigue el patrón getter que aprendiste anteriormente: proporcionar acceso controlado a los datos internos en lugar de acceder al campo directamente. Mantén toda tu funcionalidad existente (constructor, métodos de depósito y retiro).
  • main.lua: Crea una cuenta y ejecuta una secuencia de operaciones bancarias para demostrar cómo funcionan juntos los depósitos, retiros y verificaciones de saldo en un escenario real.

Recibirás cinco entradas:

  1. Monto del depósito inicial
  2. Monto del primer retiro
  3. Monto del segundo depósito
  4. Monto del segundo retiro
  5. Monto del tercer retiro

In su archivo principal, crea una cuenta y realiza estas operaciones en orden:

  1. Deposita el monto inicial, luego imprime el saldo usando :getBalance()
  2. Retira el primer monto, luego imprime el saldo
  3. Deposita el segundo monto, luego imprime el saldo
  4. Retira el segundo monto, luego imprime el saldo
  5. Intenta el tercer retiro, luego imprime el saldo

Recuerda que los retiros fallidos imprimirán Insufficient funds antes de que imprimas el saldo.

Por ejemplo, si las entradas son 200, 50, 100, 180, y 100, la salida debería ser:

200
150
250
70
Insufficient funds
70

La cuenta comienza en 200, baja a 150 después del primer retiro, sube a 250 después de otro depósito, cae a 70 después de retirar 180, y se mantiene en 70 cuando el retiro final de 100 falla debido a fondos insuficientes.

Pruébalo tú mismo

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

-- Leer las cinco entradas
local initialDeposit = tonumber(io.read())
local withdrawal1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local withdrawal2 = tonumber(io.read())
local withdrawal3 = tonumber(io.read())

-- Crear una sola cuenta
local account = Account:new()

-- Depositar el monto inicial y mostrar el saldo usando :getBalance()
account:deposit(initialDeposit)
print(account:getBalance())

-- Intentar el primer retiro y mostrar el saldo
account:withdraw(withdrawal1)
print(account:getBalance())

-- Depositar el segundo monto y mostrar el saldo
account:deposit(deposit2)
print(account:getBalance())

-- Intentar el segundo retiro y mostrar el saldo
account:withdraw(withdrawal2)
print(account:getBalance())

-- Intentar el tercer retiro y mostrar el saldo
account:withdraw(withdrawal3)
print(account:getBalance())

Todas las lecciones de Object Oriented Programming