Lua 面向对象编程:元表和元方法
Lua 的面向对象编程基于元表和元方法。元表是一个表,它定义了对象的'行为和属性'。元方法是一组特殊的函数,它们定义了对象的操作。
在 Lua 中,可以使用表实现对象。一个对象可以是一个表,它包含了'属性和方法'。通过设置元表,可以定义对象的'行为和操作'。
以下是一个简单的面向对象示例:
-- 定义一个类
Person = {}
-- 定义类的构造函数
function Person:new(name, age)
local obj = { name = name, age = age }
setmetatable(obj, self)
self.__index = self
return obj
end
-- 定义类的方法
function Person:sayHello()
print('Hello, my name is ' .. self.name .. ' and I am ' .. self.age .. ' years old.')
end
-- 创建对象
p1 = Person:new('John', 30)
p2 = Person:new('Jane', 25)
-- 调用对象的方法
p1:sayHello() -- 输出: Hello, my name is John and I am 30 years old.
p2:sayHello() -- 输出: Hello, my name is Jane and I am 25 years old.
在上面的例子中,我们定义了一个Person类,并实现了一个new方法用于创建对象。我们还定义了一个sayHello方法,用于打印对象的'属性'。通过设置元表,我们可以将Person类作为对象的元表,从而实现'继承和多态性'。
原文地址: https://www.cveoy.top/t/topic/nGpP 著作权归作者所有。请勿转载和采集!