lua简单类的实现

来源:互联网 发布:chrome ie tab mac 编辑:程序博客网 时间:2024/05/29 02:35

原文地址:http://blog.csdn.net/qqmcy/article/details/37725177

类实现:

MyClass = class("MyClass")--这句话是重定义元表的索引,必须要有MyClass.__index = MyClassfunction MyClass:test(x,y)local temp = {}setmetatable(temp, MyClass) -- 必须要有self.x=xself.y=yreturn selfendfunction MyClass:printf123()print(self.x,self.y)end


调用

obj = MyClass:test(17,28)obj:printf123()


类继承:

这里继续使用上面的代码

TestClass = {c=0}//和类定义一样,表索引设定为自身TestClass.__index = TestClass--设置类型是MyClasssetmetatable(TestClass, MyClass)function TestClass:test1(a, b,c)local  temp1 = {}self=MyClass:test(a, b)--将对象设定为父类,这个和C++使用父类的方法相同都是用父类名MyClass调用setmetatable(self, TestClass)--将对象自身元表设定为TestClass类self.c = creturn selfendfunction TestClass:myPrintf()print(self.x,self.y,self.c)end



0 0