Método de depósito
Parte de la sección Programación Orientada a Objetos del Journey de Lua de Coddy — lección 20 de 70.
Desafío
FácilAhora estamos comenzando el proyecto Digital Bank. ¡Es hora de agregar funcionalidad a tu nuevo sistema! Ahora que las cuentas se pueden crear 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, agregarás un método :deposit(amount) que incrementa el saldo de la cuenta en la cantidad especificada. Esta es una operación bancaria fundamental: ¡entra dinero y el saldo crece!
Tus dos archivos:
Account.lua: Extiende tu clase Account agregando un método:deposit(amount). Este método debe agregar la cantidad dada aself.balance. Conserva 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:
- Monto del primer depósito
- Monto del segundo depósito
- Monto del tercer depósito
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 nueva línea.
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, después crece a 100 tras el primer depósito, 150 tras el segundo y 175 tras el tercero. ¡Tu método :deposit() hace posible esta acumulación!
Pruébalo tú mismo
-- Requiere el módulo Account
local Account = require('Account')
-- Lee las tres cantidades de depósito
local deposit1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local deposit3 = tonumber(io.read())
-- Crea una sola cuenta
local account = Account:new()
-- Realiza los tres depósitos e imprime el saldo después de cada uno
-- TODO: deposita deposit1 e imprime account.balance
-- TODO: deposita deposit2 e imprime account.balance
-- TODO: deposita deposit3 e imprime account.balance
Todas las lecciones de Programación Orientada a Objetos
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