Menu
Coddy logo textTech

Obtener saldo

Parte de la sección Programación Orientada a Objetos 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 comprobación adecuada de los fondos. Ahora añadamos un método getter para obtener el saldo y después juntemos todo en un escenario bancario realista.

Continuarás trabajando 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 antes: proporcionar acceso controlado a los datos internos en lugar de acceder directamente al campo. Conserva toda la funcionalidad existente (constructor y métodos de depósito y retiro).
  • main.lua: Crea una cuenta y recorre una secuencia de operaciones bancarias para demostrar cómo funcionan juntos los depósitos, los retiros y las comprobaciones de saldo en una situación real.

Recibirás cinco entradas:

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

En tu archivo principal, crea una cuenta y realiza estas operaciones en orden:

  1. Deposita la cantidad inicial y después imprime el saldo usando :getBalance()
  2. Retira la primera cantidad y después imprime el saldo
  3. Deposita la segunda cantidad y después imprime el saldo
  4. Retira la segunda cantidad y después imprime el saldo
  5. Intenta realizar el tercer retiro y después 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 con 200, baja a 150 después del primer retiro, sube a 250 después de otro depósito, baja a 70 después de retirar 180 y permanece en 70 cuando el retiro final de 100 falla debido a fondos insuficientes.

Pruébalo tú mismo

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

-- Lee 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())

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

-- Deposita la cantidad inicial e imprime el saldo usando :getBalance()
account:deposit(initialDeposit)
print(account:getBalance())

-- Intenta el primer retiro e imprime el saldo
account:withdraw(withdrawal1)
print(account:getBalance())

-- Deposita la segunda cantidad e imprime el saldo
account:deposit(deposit2)
print(account:getBalance())

-- Intenta el segundo retiro e imprime el saldo
account:withdraw(withdrawal2)
print(account:getBalance())

-- Intenta el tercer retiro e imprime el saldo
account:withdraw(withdrawal3)
print(account:getBalance())

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de Lua online