Método de depósito
Parte de la sección Object Oriented Programming del Journey de Lua de Coddy — lección 20 de 70.
Desafío
Fácil¡Es hora de añadir funcionalidad a tu Banco Digital! Ahora que las cuentas pueden crearse con un saldo inicial de 0, vamos a darles la capacidad de recibir dinero a través de depósitos.
Basándote en tu clase Account existente, añadirás un método :deposit(amount) que incrementa el saldo de la cuenta por la cantidad especificada. Esta es una operación bancaria fundamental: ¡el dinero entra y el saldo crece!
Tus dos archivos:
Account.lua: Extiende tu clase Account añadiendo un método:deposit(amount). Este método debe sumar la cantidad dada aself.balance. Mantén todo lo de la lección anterior (la estructura de la clase y el constructor:new()).main.lua: Requiere tu módulo Account, crea una cuenta, realiza algunos depósitos y muestra cómo cambia el saldo.
Recibirás tres entradas:
- Primera cantidad a depositar
- Segunda cantidad a depositar
- Tercera cantidad a depositar
En tu archivo principal, crea una sola cuenta y realiza los tres depósitos en orden. Después de cada depósito, imprime el saldo actual en una línea nueva.
Por ejemplo, si las entradas son 100, 50 y 25, la salida debería ser:
100
150
175Observa cómo cada depósito se suma al saldo anterior: la cuenta comienza en 0, luego crece a 100 después del primer depósito, a 150 después del segundo y a 175 después del tercero. ¡Tu método :deposit() hace que esta acumulación suceda!
Pruébalo tú mismo
-- Requerir el módulo Account
local Account = require('Account')
-- Leer los tres montos de depósito
local deposit1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local deposit3 = tonumber(io.read())
-- Crear una sola cuenta
local account = Account:new()
-- Realizar los tres depósitos e imprimir el saldo después de cada uno
-- TODO: depositar deposit1 e imprimir account.balance
-- TODO: depositar deposit2 e imprimir account.balance
-- TODO: depositar deposit3 e imprimir account.balance
Todas las lecciones de Object Oriented Programming
1El concepto de 'self'
Tablas con funciones'self' explícitoLa sintaxis de dos puntosPunto vs. dos puntosResumen - Punto en movimiento4Proyecto: Banco Digital
Configuración del proyectoMétodo de depósito2Patrón de prototipo de clase
El concepto de prototipoVinculación con __indexEl constructor :new()Inicialización de atributosInstancias independientesResumen - Fábrica de coches5Sobrecarga de operadores en POO
Sumar objetosRestar objetosConcatenar objetosComparar objetos (<, >)Resumen - Matemáticas de la billetera8Encapsulamiento
Convenciones de nomenclaturaClosures para privacidadAcceso mediante ClosuresTablas de solo lecturaLógica de validaciónResumen - Bóveda segura11Patrones de diseño (Lite)
Funciones FactoryTabla SingletonPatrón IteradorObserver (Listener)Resumen - Logger Factory3Estado y Comportamiento de los Objetos
Variables de InstanciaMétodos GetterMétodos SetterPropiedades CalculadasFormateo de StringsComprobaciones de IgualdadResumen - Calificación del Estudiante6Fundamentos de la herencia
Configuración de la herenciaHerencia de métodosExtender el constructorAñadir métodos hijosCompartido vs. ÚnicoResumen: Jerarquía de formas