• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Lua面向对象

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

面向对象
  组成:成员变量、成员函数
  要求:每个对象,由类生成,有自己的成员变量、使用共同的成员函数

Lua构造面向对象
  原理
    用table表示成员变量
    用function表示成员函数
    用metatable关联对象和类
  实现

 1 -- 空类
 2 Class = {}
 3 
 4 -- 指向自己
 5 Class.__index = Class
 6 
 7 -- 成员变量
 8 Class.val = "Class"
 9 
10 -- 成员函数
11 function Class:print()    --相当 Class.print(self)
12     print("Class:print val = "..self.val)
13 end
14 
15 function Class:modify()
16     self.val = "modify"
17 end
18 
19 -- 构造函数
20 function Class:new(initVal)
21     -- 申请空间
22     local object = {}
23 
24     -- 初始数据
25     object.val = initVal
26 
27     -- 关联class
28     setmetatable(object,Class)
29 
30     -- 返回对象
31     return object
32 end
33 
34 -- test
35 local obj = Class:new("object")
36 print("before modify")
37 Class:print()
38 obj:print()
39 print("after modify")
40 obj:modify()
41 Class:print()
42 obj:print()
43 
44 -- output
45 -- before modify
46 -- Class:print val = Class
47 -- Class:print val = object
48 -- after modify
49 -- Class:print val = Class
50 -- Class:print val = modify

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua&C通过栈交换数据发布时间:2022-07-22
下一篇:
使用lua编写wireshark协议解析插件发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap