Recapitulação - Movendo o Ponto
Parte da seção Object Oriented Programming do Journey de Lua da Coddy — lição 5 de 70.
Desafio
FácilCrie uma tabela chamada point com dois campos:
x- a coordenada xy- a coordenada y
Adicione um método :move(dx, dy) usando a sintaxe de dois pontos que adiciona dx a self.x e dy a self.y.
Você receberá quatro entradas:
- Coordenada x inicial
- Coordenada y inicial
- Delta x (quantidade para mover horizontalmente)
- Delta y (quantidade para mover verticalmente)
Após criar o ponto com as coordenadas iniciais e chamar :move() com os valores de delta, imprima a posição final neste formato exato:
[x], [y]Por exemplo, se a posição inicial for (3, 5) e você mover por (2, -1), a saída deve ser:
5, 4Experimente você mesmo
-- Ler entradas
local initial_x = tonumber(io.read())
local initial_y = tonumber(io.read())
local dx = tonumber(io.read())
local dy = tonumber(io.read())
-- TODO: Escreva seu código abaixo
-- 1. Crie uma tabela chamada 'point' com os campos x e y (usando as coordenadas iniciais)
-- 2. Adicione um método :move(dx, dy) usando a sintaxe de dois pontos que modifica self.x e self.y
-- Chamar o método move e imprimir o resultado
point:move(dx, dy)
print(point.x .. ", " .. point.y)Todas as lições de Object Oriented Programming
1O Conceito 'Self'
Tabelas com Funções'self' ExplícitoA Sintaxe de Dois-pontosPonto vs Dois-pontosRecapitulação - Movendo o Ponto4Projeto: Banco Digital
Configuração do ProjetoMétodo de Depósito7Polimorfismo e Sobrescrita
Sobrescrita de MétodosChamando Métodos da Classe PaiDuck TypingInterface ComumVerificando o TipoRecapitulação - Papéis de Funcionários10Projeto: Gerenciador de Formas
Configuração do ProjetoClasse Retângulo2Padrão de Protótipo de Classe
O Conceito de ProtótipoVinculando com __indexO Construtor :new()Inicializando AtributosInstâncias IndependentesRecapitulação - Fábrica de Carros5Sobrecarga de Operadores em POO
Somando ObjetosSubtraindo ObjetosConcatenando ObjetosComparando Objetos (<, >)Recapitulação - Matemática de Carteira8Encapsulamento
Convenções de NomenclaturaClosures para PrivacidadeAcesso via ClosuresTabelas Somente LeituraLógica de ValidaçãoRecapitulação - Cofre Seguro11Padrões de Projeto (Lite)
Funções FactoryTabela SingletonPadrão IteratorObserver (Listener)Recapitulação - Logger Factory3Estado e Comportamento do Objeto
Variáveis de InstânciaMétodos GetterMétodos SetterPropriedades CalculadasFormatação de StringsVerificações de IgualdadeRecapitulação - Nota do Aluno6Fundamentos de Herança
Configurando a HerançaHerdando MétodosEstendendo o ConstrutorAdicionando Métodos FilhosCompartilhado vs ÚnicoRecapitulação - Hierarquia de Formas