标签:一个 onclick dex 就是 定义 ble hide splay str
1 -- 类的例子,长方形的类,具备一个打印面积方法和一个设置长宽的方法 2 --lua实现类的思路,定义出来的对象在lua中可以访问自己有的成员,访问成员函数实际上是通过元表的__index方法实现的,具体点就是访问自己的成员函数,发现没有函数,然后判断是否有元表和__index元方法(当然都有,而且是必须有),然后就变成了访问元表也就是类的成员,自然就访问了成员函数 3 Cfx = { m_chang = 0, m_kuan = 0, m_area = 0 } 4 Cfx.__index = Cfx 5 function Cfx:new(chang, kuan) 6 local self = { } 7 setmetatable(self, Cfx) 8 self.m_chang = chang 9 self.m_kuan = kuan 10 self.m_area = chang * kuan 11 return self 12 end 13 14 function Cfx:printArea() 15 print("长方形的面积为:" .. self.m_area) 16 end 17 18 function Cfx:setC(chang, kuan) 19 if chang then 20 self.m_chang = chang 21 end 22 if kuan then 23 self.m_kuan = kuan 24 end 25 self.m_area = self.m_chang * self.m_kuan 26 end 27 28 r1 = Cfx:new(10, 20) 29 r1:printArea() 30 r2 = Cfx:new(30, 40) 31 r2:printArea() 32 r1:setC(_, 50) 33 r2:setC(50) 34 print("----------------------------------------------------------------") 35 r1:printArea() 36 r2:printArea() 37 38 39 40 --Lua实现继承,继承自上面的长方形类,同时具备自身的成员(周长)和一个打印周长的方法 41 --继承也是跟上面所说的类的构建同理,可以看成是C++中的先构造一个父类,然后再构造自己,所以可以理解为有两个类构造出来了 42 Cfx_w ={m_zhouchang=0} 43 Cfx_w.__index=Cfx_w 44 setmetatable(Cfx_w,Cfx) 45 46 function Cfx_w:new(c,k) 47 local self ={} 48 self=Cfx:new(c,k) 49 setmetatable(self ,Cfx_w) 50 self.m_zhouchang=2*(c+k) 51 return self 52 end 53 54 55 function Cfx_w:printZ() 56 self.m_zhouchang=2*(self.m_chang+self.m_kuan) 57 print ("长方形的周长为:" .. self.m_zhouchang) 58 end 59 60 function Cfx_w:printArea() 61 print ("重写父类方法,长方形面积是:".. self.m_area) 62 end 63 r3=Cfx_w:new(10,5) 64 r3:printArea() 65 r3:printZ() 66 print ("****************************************************************") 67 r3:setC(2,2) 68 r3:printArea() 69 r3:printZ()
lua实现类的思路,定义出来的对象在lua中可以访问自己有的成员,访问成员函数实际上是通过元表的__index方法实现的,具体点就是访问自己的成员函数,发现没有函数,然后判断是否有元表和__index元方法(当然都有,而且是必须有),然后就变成了访问元表也就是类的成员,自然就访问了成员函数。
标签:一个 onclick dex 就是 定义 ble hide splay str
原文地址:https://www.cnblogs.com/shan-mu/p/11334738.html