Итоги — Движущаяся точка
Часть раздела Object Oriented Programming путешествия по Lua на Coddy — урок 5 из 70.
Задание
ЛегкоСоздайте таблицу с именем point с двумя полями:
x— координата xy— координата y
Добавьте метод :move(dx, dy), используя синтаксис с двоеточием, который прибавляет dx к self.x и dy к self.y.
Вы получите четыре входных значения:
- Начальная координата x
- Начальная координата y
- Delta x (величина перемещения по горизонтали)
- Delta y (величина перемещения по вертикали)
После создания точки с начальными координатами и вызова метода :move() с дельта-значениями, выведите конечное положение в следующем точном формате:
[x], [y]Например, если начальное положение (3, 5) и вы перемещаете его на (2, -1), результат должен быть:
5, 4Попробуйте сами
-- Чтение входных данных
local initial_x = tonumber(io.read())
local initial_y = tonumber(io.read())
local dx = tonumber(io.read())
local dy = tonumber(io.read())
-- TODO: Напишите ваш код ниже
-- 1. Создайте таблицу с именем 'point' с полями x и y (используя начальные координаты)
-- 2. Добавьте метод :move(dx, dy), используя синтаксис с двоеточием, который изменяет self.x и self.y
-- Вызовите метод move и выведите результат
point:move(dx, dy)
print(point.x .. ", " .. point.y)Все уроки раздела Object Oriented Programming
1Концепция 'self'
Таблицы с функциямиЯвный 'self'Синтаксис с двоеточиемТочка против двоеточияИтоги — Движущаяся точка4Проект: Цифровой банк
Настройка проектаМетод пополнения7Полиморфизм и переопределение
Переопределение методовВызов родительских методовУтиная типизацияОбщий интерфейсПроверка типаИтоги — Роли сотрудников2Паттерн прототипа класса
Концепция прототипаСвязывание через __indexКонструктор :new()Инициализация атрибутовНезависимые экземплярыИтоги — Автозавод5Перегрузка операторов в ООП
Сложение объектовВычитание объектовКонкатенация объектовСравнение объектов (<, >)Повторение — Математика кошелька8Инкапсуляция
Соглашения об именованииЗамыкания для приватностиДоступ через замыканияТаблицы только для чтенияЛогика валидацииИтоги — Защищенное хранилище11Паттерны проектирования (Lite)
Фабричные функцииТаблица SingletonПаттерн IteratorObserver (Слушатель)Итоги — Logger Factory3Состояние и поведение объектов
Переменные экземпляраГеттерыСеттерыВычисляемые свойстваФорматирование строкПроверка на равенствоПовторение — Оценка студента6Основы наследования
Настройка наследованияНаследование методовРасширение конструктораДобавление дочерних методовОбщее и уникальноеИтоги: Иерархия фигур