<7>Lua类的表的实例创建
根据上一节知识所述Lua中没有像C、C++、JAVA中的类概念,面向对象等 ,但我们可以模拟出来
如下
代码如下:
--创建类的表
local Person = {}
function Person:setName()
print("Person:setName()")
end
--.....
--new实例函数
function Person:new(instance)
if not instance then
instance = {}
end
local meta_Person = {
__index = self,
}
setmetatable(instance,meta_Person)
return instance
end
--实例化
local man = Person:new()
man.setName() --Person:setName()
--实例化二
local woman = Person:new({
name = "xiaohong",
age = 24,
sex = 1,
})
print(woman.name)
print(woman.setName)
面向对象的基本步骤:
--(1)定义一个类的表;
--(2)定义一个实例的表;
--(3)为这个实例的表加一个元素,并且元表__index指向了这个类的表;
--(4)利用self机制,表的实例:表的函数的时候,隐式的帮我们传递了这个实例的表为self到函数里面;
<7>Lua类的表的实例创建的更多相关文章
- sell 项目 类目表 设计 及 创建
1.数据库设计 2.类目表 创建 /** * 类目表 */ create table `product_category` ( `category_id` int not null auto_incr ...
- sqlalchemy根据表名动态创建model类
作用如题,直接上代码吧,另外还支持 copy一张表的表结构,新建表并获得model对象 # coding: utf-8 import traceback from sqlalchemy import ...
- Python利用元类来控制实例创建
问题: 改变实例创建方式,以此来实现单例模式,缓存或者其他类似的特性. 解决方法: 如果想定制化创建实例的过程,可以通过定制一个元类并以某种方式重新实现它的__call__()方法. 使用元类的单例模 ...
- LUA类
cpp_object_map = {}setmetatable(cpp_object_map, { __mode = "kv" }) local search_basesearch ...
- 【游戏开发】Excel表格批量转换成lua的转表工具
一.简介 在上篇博客<[游戏开发]Excel表格批量转换成CSV的小工具> 中,我们介绍了如何将策划提供的Excel表格转换为轻便的CSV文件供开发人员使用.实际在Unity开发中,很多游 ...
- Lua类的继承 参考实现
参考url: https://blog.codingnow.com/cloud/LuaOO 最近在思考lua类的继承实现 ,参考了云风的类实现,感觉他的更像是接口写法.于是尝试用自己的方式重写了类实例 ...
- lua 类支持属性不能被修改
背景 lua是类是借助表的来实现的, 类被定义后, 在使用场景下, 不希望被修改.如果被修改, 则影响的类的原始定义, 影响所有使用类的地方. 例如: --- router.lua class fil ...
- c#反射机制判断同一个类的两个实例的值是否完全一样
; i < properties1.Length; i++) { string s = properties1[i].DeclaringTyp ...
- lua 类实现
Class={}; Class.classList={}; --保存所有已经定义过的类 --类的类型: 类和接口, 接口也是一种类 Class.TYPE_CLASS="Class" ...
随机推荐
- Java 输入/输出——字节流和字符流
1.流的分类 (1)输入流和输出流(划分输入/输出流时是从程序运行所在内存的角度来考虑的) 输入流:只能从中读取数据,而不能向其写入数据. 输出流:只能向其写入数据,而不能从中读取数据. 输入流主要由 ...
- swf 文件解析
public class TagTypes { // Flash 1 tags public static const TAG_END:uint = 0; ...
- 新的ipad,用xcode编译报错 dyld_shared_cache_extract_dylibs
删掉 ~/Library/Developer/Xcode/iOS DeviceSupport/ 这个目录下的特定文件夹就行啦. 其实是因为 device is busy 生成文件夹过程中拔掉了设 ...
- 20165336 2017-2018-2 《Java程序设计》第7周学习总结
20165336 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 查询操作:向数据库发送SQL查询语句,处理查询结果,关闭连接. 顺序查询:next()方法向 ...
- spring学习(01)之IOC
spring学习(01)之IOC IOC:控制反转——Spring通过一种称作控制反转(IOC)的技术促进了低耦合.当应用了IOC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创 ...
- 1-2-编译U-boot
1-2-编译U-boot 1.su+enter进入超级用户模式. 2.cd /mnt/+两次Tab去到根目录,ls显示共享文件夹里的文件. 3.解压tar xvfj uboot_TQ210_1.3.4 ...
- python的前后端分离(一):django+原生js实现get请求
一.django新建项目和应用 参考:https://segmentfault.com/a/1190000016049962#articleHeader2 1.创建项目 django-admin st ...
- jquery 请求返回的几种方式
页面代码 <form id="form1" runat="server"> <div> <p> Ajax请求ashx返回js ...
- UILabel部分文字可点击
源代码:https://github.com/lyb5834/YBAttributeTextTapAction地址 如果想用富文本文件,可以参考的另外一篇博客; https://www.cnblogs ...
- Socket接口
Socket接口 Socket: Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Sock ...