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 comenzamos el proyecto Banco Digital. ¡Es hora de añadir funcionalidad a tu nuevo sistema! Ahora que se pueden crear cuentas con un saldo inicial de 0, démosles la capacidad de recibir dinero mediante depósitos.
Basándote en tu clase Account existente, añadirás un método :deposit(amount) que aumenta el saldo de la cuenta en la cantidad especificada. Esta es una operación bancaria fundamental: el dinero entra y el saldo crece.
Tus dos archivos:
Account.lua: Amplía tu clase Account añadiendo un método:deposit(amount). Este método debe añadir la cantidad indicada 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:
- Cantidad del primer depósito
- Cantidad del segundo depósito
- Cantidad 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 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 basa en el saldo anterior: la cuenta comienza en 0, después aumenta a 100 tras el primer depósito, a 150 tras el segundo y a 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 formasPractica por tu cuenta: Compilador de Lua online