Resumen - Punto en movimiento
Parte de la sección Object Oriented Programming del Journey de Lua de Coddy — lección 5 de 70.
Desafío
FácilCrea una tabla llamada point con dos campos:
x- la coordenada xy- la coordenada y
Añade un método :move(dx, dy) utilizando la sintaxis de dos puntos que sume dx a self.x y dy a self.y.
Recibirás cuatro entradas:
- Coordenada x inicial
- Coordenada y inicial
- Delta x (cantidad a mover horizontalmente)
- Delta y (cantidad a mover verticalmente)
Después de crear el punto con las coordenadas iniciales y llamar a :move() con los valores delta, imprime la posición final en este formato exacto:
[x], [y]Por ejemplo, si la posición inicial es (3, 5) y te mueves (2, -1), la salida debería ser:
5, 4Pruébalo tú mismo
-- Leer entradas
local initial_x = tonumber(io.read())
local initial_y = tonumber(io.read())
local dx = tonumber(io.read())
local dy = tonumber(io.read())
-- TODO: Escribe tu código a continuación
-- 1. Crea una tabla llamada 'point' con los campos x e y (usando las coordenadas iniciales)
-- 2. Añade un método :move(dx, dy) usando la sintaxis de dos puntos que modifique self.x y self.y
-- Llama al método move e imprime el resultado
point:move(dx, dy)
print(point.x .. ", " .. point.y)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