powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП в Lua.
5 сообщений из 5, страница 1 из 1
ООП в Lua.
    #37987389
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сабж кто юзал? Вроде напрямую нет но как-то хитро через работу с таблицей вирт. функций.
Но где она как сущность еще не раскурил. И как с ней работать.

Читаю тут.

http://lua-users.org/wiki/ObjectOrientationTutorial
...
Рейтинг: 0 / 0
ООП в Lua.
    #37987744
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простейший пример


TestClass = {}

function TestClass:new(data)
-- .............. какая то логика и проверки
local self = {
ID=data.ID,
}

function self:printId()
print(self.ID)
end

return setmetatable(self, {})
end

local tst = TestClass:new ({ID=10500})
tst:printId()
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ООП в Lua.
    #39446065
alexandrich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот пример с наследованием

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
--Элемент
Element = {}

function Element:new(row, column, text)                        
	local newObj = {}               
	newObj.Row = row or 0
	newObj.Column = column or 0
	newObj.Text = text or ''

	function Element:tostring()
		return 'row='..self.Row..';column='..self.Column..';Text='..self.Text
	end
	
	self.__index = self                     
	return setmetatable(newObj, self)       
end


--Элемент кнопка
ButtonElement = {}
--наследуем
setmetatable(ButtonElement ,{__index = Element}) 

function ButtonElement:new(row, column, text, color)
	local newObj = Element:new(row, column, text)
	newObj.Color = color or ''

	function ButtonElement:tostring()
		return Element.tostring(self)..';Color='..self.Color
	end

	self.__index = self
	return setmetatable(newObj, self)
end
...
Рейтинг: 0 / 0
ООП в Lua.
    #39446071
alexandrich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проверка
btn = ButtonElement:new(0,9,'new btn','gray')
print(btn:tostring())
...
Рейтинг: 0 / 0
ООП в Lua.
    #39447765
alexandrich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия с разбивкой по модулям
Добавлена коллекция элементов
Добавлена отрисовка элементов в консоль
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП в Lua.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]