源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Lua面向对象编程之类的简单实现方式

  • 时间:2021-08-31 11:18 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Lua面向对象编程之类的简单实现方式
先来看一段程序:
[u]复制代码[/u] 代码如下:
function create(name, id)       local obj = { name = name, id = id }       function obj:SetName(name)         self.name = name       end       function obj:GetName()         return self.name       end       function obj:SetId(id)         self.id = id       end       function obj:GetId()         return self.id       end       return obj    end    o1 = create("Sam", 001)    print("o1's name:", o1:GetName(), "o1's id:", o1:GetId())    o1:SetId(100)    o1:SetName("Lucy")    print("o1's name:", o1:GetName(), "o1's id:", o1:GetId())
输出结果:
[u]复制代码[/u] 代码如下:
o1's name: Sam o1's id: 1 o1's name: Lucy o1's id: 100
[b]对象工厂模式:[/b] 如前面代码的create函数 [b]用表表示对象:[/b] 把对象的数据和方法都放进一张表内,虽然没有隐藏私有成员,但对于简单脚本来说可以完全接受 [b]成员方法的定义:[/b]
[u]复制代码[/u] 代码如下:
function obj:method(a1,a2,…)…end --等价于     function obj.method(self,a1,a2,…)…end --等价于     obj.method=function(self,a1,a2,...)...end
[b]成员方法的调用:[/b]
[u]复制代码[/u] 代码如下:
obj:method(a1,a2,...) --等价于     obj.method(obj,a1,a2,...)
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部