根据上一节知识所述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类的表的实例创建的更多相关文章

  1. sell 项目 类目表 设计 及 创建

    1.数据库设计 2.类目表 创建 /** * 类目表 */ create table `product_category` ( `category_id` int not null auto_incr ...

  2. sqlalchemy根据表名动态创建model类

    作用如题,直接上代码吧,另外还支持 copy一张表的表结构,新建表并获得model对象 # coding: utf-8 import traceback from sqlalchemy import ...

  3. Python利用元类来控制实例创建

    问题: 改变实例创建方式,以此来实现单例模式,缓存或者其他类似的特性. 解决方法: 如果想定制化创建实例的过程,可以通过定制一个元类并以某种方式重新实现它的__call__()方法. 使用元类的单例模 ...

  4. LUA类

    cpp_object_map = {}setmetatable(cpp_object_map, { __mode = "kv" }) local search_basesearch ...

  5. 【游戏开发】Excel表格批量转换成lua的转表工具

    一.简介 在上篇博客<[游戏开发]Excel表格批量转换成CSV的小工具> 中,我们介绍了如何将策划提供的Excel表格转换为轻便的CSV文件供开发人员使用.实际在Unity开发中,很多游 ...

  6. Lua类的继承 参考实现

    参考url: https://blog.codingnow.com/cloud/LuaOO 最近在思考lua类的继承实现 ,参考了云风的类实现,感觉他的更像是接口写法.于是尝试用自己的方式重写了类实例 ...

  7. lua 类支持属性不能被修改

    背景 lua是类是借助表的来实现的, 类被定义后, 在使用场景下, 不希望被修改.如果被修改, 则影响的类的原始定义, 影响所有使用类的地方. 例如: --- router.lua class fil ...

  8. c#反射机制判断同一个类的两个实例的值是否完全一样

    ; i < properties1.Length; i++)            {                string s = properties1[i].DeclaringTyp ...

  9. lua 类实现

    Class={}; Class.classList={}; --保存所有已经定义过的类 --类的类型: 类和接口, 接口也是一种类 Class.TYPE_CLASS="Class" ...

随机推荐

  1. Copycat - AppendRequest

    对于Command,Configuration都要通过appendEntries的方式,把Entries同步给follower LeaderState.configure /** * Commits ...

  2. onload和DOMContentLoaded

    执行时间 onload必须等到页面内包括图片的所有元素加载完毕后才能执行. DOMContentLoaded是DOM结构绘制完毕后就执行,不必等到加载完毕. 编写个数不同 onload不能同时编写多个 ...

  3. scrapy windows下出现importError:No module named 'win32api'

    scrapy windows下出现importError:No module named 'win32api'需安装 pip install pypiwin32

  4. Qt Multimedia 模块类如何使用?(表格)

    qt 多媒体模块介绍 类名 英文描述 中文描述 QAudioBuffer Represents a collection of audio samples with a specific format ...

  5. JavaScript、关于元素的offset~和client~

    1.偏移量(offset dimension)   =>offsetLeft(元素距离其父元素左边框(/上边框)的距离) =>offsetTop =>offsetWidth(元素的宽 ...

  6. 【SQL】group by 和order by 的区别。

    group by 分组,比如group by name.那么重复name就显示一遍,即同样内容归类显示一遍. group by ……having……——(where 后不可以接聚合函数,而having ...

  7. du 查看文件大小

    [root@localhost ~]# du -sh /etc # 查看目录下所有文件大小 [root@localhost ~]# du -sh * # 查看所有文件大小

  8. Eclipse ADT中的logcat不显示解决方法

    今天维护android的程序,也不知道几百年前写的,elipse,一个日志文件都不显示,做的想哭,我使用的方法二,这里给自己留一个备份,怕再忘记了   1.在Eclipse界面中找到DDMS,然后找到 ...

  9. NYOJ 会场安排问题

    #include<iostream> #include<stdio.h> #include<string.h> #include<queue> #inc ...

  10. GIT中常用的命令

    最近项目中使用到了GIT,所以记录一下GIT中常用的命令. GIT使用的客户端有Git Bash:http://code.google.com/p/msysgit/ 还有乌龟TortoiseGit:h ...