1.基于元表进行使用
原理:当设置了元表,并且设置了元表的__index,当前表没有的属性会根据__index指向的表进行寻找

2.new的过程:返回一张空表,并且设置元表为调用new方法的表

3.inherit的过程:往_G表(存储所有全局变量的表),写入一张表,并且设置元表为调用inherit
要注意的点是:重写父类方法,如果要调用父类的方法,在添加新的功能时,调用父类的方法要使用.调用

--封装
Object={}
Object.posx=0
Object.posy=0--new 实例化
function Object:new( )local obj={}setmetatable(obj,self)self.__index=selfreturn obj
endlocal o1=Object:new()
print(o1.posx)
print(o1.posy)--inherit 继承
function Object:inherit(className)_G[className]={}local obj = _G[className]setmetatable(obj,self)self.base=selfreturn obj
endObject:inherit("PlayerObject")
p1=PlayerObject:new()function PlayerObject:Move(  )self.posx=self.posx+1self.posy=self.posy+1
endp1.Move(p1)
print(p1.posx)
print(p1.posy)PlayerObject:inherit("MyPlayerObject")
function MyPlayerObject:Move(  )
--使用.调用父类的方法,而不适用:调用,因为使用:调用,会把元表playerObject当成self使用,而不是当前的调用者self.base.Move(self)print(self.posx)print(self.posy)
endprint("---")
mypo1=MyPlayerObject:new()
mypo1:Move()
mypo2=MyPlayerObject:new()
mypo2:Move()

Lua--初学--new,inherit总结相关推荐

  1. lua -- class

    Lua中没有类的概念,有的只有table表,而面向对象的实现只不过是将表与父类的表连在一起,没有某个变量的时候就去父类查找.cocos2dx-lua中有一个class函数实现了类的继承,包括了单继承和 ...

  2. Unity的学习笔记(XLua的初学用法并在lua中使用unity周期函数)

    自己最近也在研究怎么用lua控制UI,然后看着网上介绍,决定选用XLua,毕竟TX爸爸出的,有人维护,自己琢磨着怎么用,于是弄出来一个能用的作为记录. 当然,XLua主要是用于热更新,我自己是拿来尝试 ...

  3. lua调用c 模块linux,Lua 调用自定义C模块

    这是<Lua程序设计>中提到的,但是想成功执行,对于初学Lua的确没那么简单.这里涉及如何如何生成一个动态链接库so文件:Lua5.2中导出函数从LuaL_register变成了LuaL_ ...

  4. lua OOP实现对象的链式调用

    数学中的链式法则 http://sx.zxxk.com/ArticleInfo.aspx?InfoID=164649 链式微分法则: 实数运算的链式法则: 对数运算的链式法则: 平行公理的链式法则: ...

  5. lua对接bmob数据库

    lua对接bmob数据库 学习的最终结果: 实现用户注册和登录 数据库增删改查 远程公告 远程更新版本 微信反馈 甚至自己做一个聊天室服务器,等等... 最后送大家的彩蛋-–超级无敌微信反馈(文末) ...

  6. Lua 报错 PANIC: unprotected error in call to Lua API (no calling environment) 解决办法

    问题表现 lua_State *L = lua_open(); /* opens Lua */ luaopen_base(L); /* opens the basic library */ luaop ...

  7. 饥荒mod制作初学笔记

    使用工具:暂时使用sublime_text作为lua语言的运行环境 mod成分部分----------------------------------------------------------- ...

  8. 使用lua开发游戏--love2d教程汇总

    说明,我只是在网上浏览时发现了"金庸群侠传lua复刻版",有源码,基于sdl使用C语言,我大概看了 一下不是很懂.后来发现了love2d,也是基于sdl,于是便有了用love2d再 ...

  9. cocos2dx之Lua学习资料汇总

    cocos2dx官方教程 http://cn.cocos2d-x.org/tutorial/lists?id=64  Cocos2d-x 脚本语言Lua开发专题 http://cn.cocos2d-x ...

  10. cocosstudio csd文件解析为.lua

    在学习python过程中,有幸能够看到一位大神在网页中公开的一个关于<CocosStudio 文件解析工具CsdAnalysis>的源码.本人使用稍作改变,由原有的.csd文件转换为C++ ...

最新文章

  1. iOS开发系列--C语言之存储方式和作用域
  2. 接上一篇配置多仓库相关命令
  3. python字符串find函数-Python字符串的方法,查找和替换
  4. SpringBoot的基础
  5. uiuc计算机课程,UIUC计算机科学专业解读
  6. php里建立数据库和表,PHP 创建数据库和表 | w3cschool菜鸟教程
  7. spring boot 2.0之安全
  8. 2017计算机基础知识ppt,2017计算机基础试卷.doc
  9. journalctl日志管理
  10. 新能源外地车进京限行限号政策是怎样的?
  11. python编程题自动评分系统_基于数据分析的评分系统改进
  12. 周志华揭开机器学习本质的57张PPT
  13. 情绪文本的时空可视化分析
  14. 苹果cmsv10动漫二次元主题网站模板免费源码
  15. 学籍信息管理系统-------具体设计
  16. 如何在eclipse中导入Java项目文件包(方法截图详细步骤)
  17. 同步时钟系统架构与原理
  18. 大数据Hadoop之HDFS和MapReduce_02_01
  19. CAN接口测试工装研究
  20. 微盟PK有赞,谁更胜一筹?

热门文章

  1. Windows Connectify使自己笔记本变无线路由器
  2. 数据可视化大屏分析避孕套(爬虫+jieba分词+pyecharts可视化大屏)
  3. tkinter模块高级操作(一)—— 透明按钮、透明文本框、自定义按钮及自定义文本框
  4. ABB UFC719AE01 3BHB003041R0101 3BHB00072R0101 UFC721AE101 3BHB002916R0101
  5. python 数据库编程,这篇是针对 mysql 的,滚雪球学Python第4季第13篇
  6. 【数学模型】数学模型的简单认识
  7. 直销业务变得简单:WordPress分步指南
  8. JDBC的学习(第二节:JDBC连接数据库 )
  9. vc和MFC的详细历史
  10. 基于 Gtid 的 MySQL 主从同步实践