Объектно-Ориентированное Программирование в Lua, Создание и использование классов
Согласно языку С++, класс - это определяемый пользователем тип, а объект - это экземпляр класса.Попробуем в lua определить понятие класса.
Каждому классу могут соответствовать несколько объектов. Каждый объект занимает своё место в памяти и манипулирует со своими переменными и функциями. Приведу пример класса и объектов: Возьмём класс - автомобиль. У этого класса есть некие свои "переменные" и "функции", такие как цвет (функция определения цвета), тип (хэтчбек, универсал, седан) и тд.Объектом данного класса, например, будет красный седанДругим объектом будет синий универсалТретьим объектом будет также синий универсал
Второй и третий объекты не отличаются ничем, однако, они разные объекты, физически разные машины, хоть и выглядят одинаково (они занимают разные адреса в памяти).
Итак, класс - это некая общность объектов.
Функция, которая предназначается для инициализации (создания) объектов называется конструктором. Ввиду того, что такая функция создаёт (конструирует) объект. В С++ имя конструктора совпадает с именем класса, и вызывается при выделении памяти под объект.В lua бы будем использовать для конструктора имя: __init, а вызываться конструктор будет при создании объекта.
class.MyClass