ITPub博客

首页 > 应用开发 > IT综合 > Lua学习笔记--面向对象(三)

Lua学习笔记--面向对象(三)

原创 IT综合 作者:壹頁書 时间:2015-12-01 14:56:34 0 删除 编辑
Lua通过Self指针实现面向对象.
对象其实是一个table,table不仅包括数据,还包括函数


account={balance=10}
function account.withdraw(self,v)
        self.balance=self.balance-v
end

local a=account
account=nil

a.withdraw(a,2)
print(a.balance)
       
self是每个函数的第一个参数,这样写起来很麻烦.
如果通过冒号(:)调用,则可以自动省略第一个参数的self
a:withdraw(2)
print(a.balance)


或者在定义的时候,直接构造对象.
account={
        balance=10,
        withdraw=       function(self,v)
                        self.balance=self.balance-v
                        end 
}
function account:deposit(v)
                self.balance=self.balance+v
end

account:withdraw(2)
print(account.balance)
account:deposit(2)
print(account.balance)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-1850567/,如需转载,请注明出处,否则将追究法律责任。

下一篇: MySQL树形遍历
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    621
  • 访问量
    5949544