首页 > 其他 > 详细

lua实现面向对象

时间:2017-02-23 16:22:42      阅读:289      评论:0      收藏:0      [点我收藏+]

c++和java语言机制中本身带有面向对象的内容,而lua设计的思想是元编程,没有面向对象的实现。

但是利用lua的元表(matetable)机制,可以实现面向对象。要讲清楚怎样实现lua面向对象,需要讲清楚以下内容。

1.lua元表 2.类和对象 3.封装 4.继承

 

1.lua元表

lua里的所有数据结构都是表。metatable可以改变table的行为。例如加法行为,table本身没有加法行为。

可以通过修改元表中的__add域,来提供表的加法行为。__add叫做元方法(metamethod)。

一个表默认是不带元表的。getmetatable可以获取元表。

t = {}
print(getmetatable(t)) --nil

setmetatable可以设置元表。

t = {}
setmetatable(t, t) --设置自己是自己的元表
print(t == getmetatable(t)) --true

任何一个表可以其他表的元表。一个表也可以是自己的元表。

lua实现面向对象

原文:http://www.cnblogs.com/yao2yaoblog/p/6433553.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!