码迷,mamicode.com
首页 > 其他好文 > 详细

[Lua学习]简单的类定义(OO概念)

时间:2015-06-22 20:28:58      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

 1 -- 二维向量类
 2 
 3 local P = {
 4     x = 0,
 5     y = 0
 6 }
 7 
 8 Vec2 = P
 9 
10 --setfenv(1, P)
11 
12 local function optAdd(a, b)
13     local o = P:new()
14     o.x = a.x + b.x
15     o.y = a.y + b.y
16     return o
17 end
18 
19 function P:new(x, y)
20     o = {}
21     
22     -- 构造 --
23     o.x = x
24     o.y = y
25     
26     -- 关联 --
27     setmetatable(o, self)
28     self.__index = self
29     
30     -- 操作符重载 --
31     self.__add = optAdd
32     
33     return o
34 end
35 
36 function P:add(x, y)
37     self.x = self.x + x
38     self.y = self.y + y
39 end
40 
41 -- class end
42 
43 obj = Vec2:new(3,2)
44 obj2 = Vec2:new(4)
45 
46 obj3 = obj + obj2
47 
48 print(obj3.x .. "," .. obj3.y)

ps:Lua面向对象的实现方法不止一种。

 

运行结果:

技术分享

[Lua学习]简单的类定义(OO概念)

标签:

原文地址:http://www.cnblogs.com/ElementCraft/p/4593651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!