Resumen - Matemáticas de la billetera
Parte de la sección Object Oriented Programming del Journey de Lua de Coddy — lección 30 de 70.
Desafío
FácilVamos a construir una clase Wallet que reúna las habilidades de sobrecarga de operadores que has aprendido en este capítulo. Tu billetera almacenará una cantidad de dinero y admitirá dos operaciones clave: combinar billeteras con + y comparar billeteras con <code>< y .
Organizarás tu código en dos archivos:
Wallet.lua: Define tu clase Wallet con un campoamountque represente cuánto dinero contiene. Incluye un constructor:new(amount)e implementa dos metamétodos:__add: Sumar dos billeteras crea una nueva billetera que contiene el total combinado__lt: Comparar billeteras determina cuál contiene menos dinero
main.lua: Requiere tu módulo Wallet, crea instancias de billetera y demuestra ambas operaciones funcionando juntas.
Recibirás tres entradas:
- Cantidad en la primera billetera
- Cantidad en la segunda billetera
- Cantidad en la tercera billetera
En tu archivo principal, crea tres billeteras con las cantidades dadas. Luego:
- Suma la primera y la segunda billetera para crear una billetera combinada
- Imprime la cantidad de la billetera combinada
- Compara la billetera combinada con la tercera billetera usando <code>< e imprime el resultado (
trueofalse) - Compara la billetera combinada con la tercera billetera usando
e imprime el resultado (trueofalse)
Por ejemplo, si las entradas son 50, 30 y 100, la salida debería ser:
80
true
falseLa primera billetera (50) más la segunda billetera (30) crea una billetera combinada con 80. Dado que 80 es menor que 100, la primera comparación es true. Dado que 80 no es mayor que 100, la segunda comparación es false.
Pruébalo tú mismo
local Wallet = require('Wallet')
-- Leer entrada
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())
-- TODO: Crear tres carteras con los montos dados
-- TODO: Sumar la primera y la segunda cartera para crear una cartera combinada
-- TODO: Imprimir el monto de la cartera combinada
-- TODO: Comparar la cartera combinada con la tercera cartera usando < e imprimir el resultado
-- TODO: Comparar la cartera combinada con la tercera cartera usando > e imprimir el resultado
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