版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HQ354974212/article/details/89402928
面向对象大家都不陌生了, lua可以使用表(table) , 元表(metatable)来模拟面向对象设计 ,
我们来使用Lua写一个简单的Student类
-- 声明类型
Student = {};
--声明属性
Student.name ="张三"
Student["age"] =12
-- 设置__index元方法(关键)
Student.__index = Student;
-- 定义构造函数
function Student:Create()
local instance = {};
setmetatable(instance, self); --关键,设置元表
return instance;
end
-- 定义玩耍方法
Student.Play = function()
print ("玩耍开始了")
end
-- 定义学习方法(使用.)
function Student.Study(s)
print (s.name.."学习开始了");
end
-- 定义打印方法(使用:)
function Student:Show()
print ( "姓名:"..self.name ,"年龄:"..self.age);
end
local stu = Student:Create();
print (stu.name)
print (stu.age)
stu:Show()
stu.Play()
stu.Study(stu)
运行结果