lua语言实现面向对象编程
来源:互联网 发布:破壁机 原汁机 知乎 编辑:程序博客网 时间:2024/05/22 03:29
lua是一个非常轻巧的脚本语言。这里通过几个步骤,说明lua如何实现类的功能。
1、通过clone函数复制表
function clone( tab_ )local tab = {}for k,v in pairs(tab) dotab[k] = vendreturn tabend
2、定义类的成员函数new,用于实例化对象
Myclass = {}Myclass.new = function ( )local self = clone(Myclass)return selfend
3、继承
通过复制表的方式,实现继承
function copy(dist,tab) --把tab表里的数据复制给distfor k,v in pairs(tab) dodist[k] = vendendbase = {} --基类base.new = function ( )local self = clone(Myclass)return selfendinheritance = {} --继承自base类inheritance = function()local self = base.new()copy(self,inheritance)return selfend
4、函数重写
函数重写非常简单,直接赋值给子类一个新的函数就行
inheritance.fun = function ( ... )-- bodyend
5、私有成员
通过函数闭包的方法,可以实现类的成员私有化
function People( name )local self = {}local function init() --闭包实现私有成员函数self.name = nameendself.sayHi = function()print("Hi "..self.name)endinit() --相当于构造函数return selfendfunction Man(name) --继承自People的类local self = {}local function init()self = People(name)endself.sayHello = function()print("Hello "..self.name)endinit()return selfendlocal m = Man("QJ")m:sayHello() --"Hello QJ"m:sayHi() --"Hi QJ" 继承基类的方法
6、总结
lua可以通过复制表和闭包的方法来实现类的特性,使用复制表效率更高,使用闭包给符合使用习惯。
0 0
- lua语言实现面向对象编程
- Lua语言中面向对象的实现
- 【ulua入门】lua实现面向对象编程
- lua 面向对象编程
- lua 面向对象编程
- Lua面向对象编程
- Lua面向对象编程
- Cocos2dx-lua 实现lua面向对象编程,并继承CCSprite
- Lua 面向对象实现
- lua实现面向对象
- lua实现面向对象
- lua实现面向对象
- 【Lua】面向对象实现
- Lua面向对象实现
- Lua面向对象实现
- lua 实现面向对象
- Lua语言学习之面向对象的编程
- C语言 实现 面向对象编程 OOC
- java中的char,short,int,long占几个字节
- javascript(一)
- LintCode 字符串转化成正数(atoi)
- 028.For 循环
- Android多媒体学习七:访问网络上的Audio对应的M3U文件,实现网络音频流的播放
- lua语言实现面向对象编程
- 【一步一步的积累】Neighbourhood Components Analysis
- 【OpenGL】Shader概述
- 029.For Error 死循环
- 黑马52期最新android视频完整高清不加密
- Extjs首日工作总结
- 左连接右连接 left join right join
- 黑马程序员_java异常
- 030.For 循环代替 While 循环