lua学习笔记day13-----对象的私有性

lua中构造类的时候,有些函数是提供给类中的方法使用的,并不想对外提供。这个时候就需要通过一定的方式,让外部无法访问这个类这些私有方法。
在之前的继承和多继承中,是通过__index的方法达到继承的目的,但是这样的方式会继承类内部所有的内容。为了保护私有部分,需要换一种继承方式。
代码如下:

function NewAccount(initialBalance)
        local self = {
                balance = initialBalance,
                LIM = 10000.00
        }
        local withdraw = function(v)
                self.balance = self.balance - v
        end
        local deposit = function (v)
                self.balance = self.balance + v
        end
        local extra = function ()
                if self.balance > LIM then
                        return self.balance * 0.1
                else
                        return 0
                end
        end
        local function getBalance()
                return self.balance + extra()
        end
        return {
                withdraw = withdraw,
                deposit = deposit,
                getBalance = getBalance
        }
end

上述代码,将局部变量和局部函数都放在了类的内部。
extra函数只会被用于函数内部的调用,没有必要也不允许被外部访问。
为了满足这样的需求,把extra函数用局部的方式声明。然后将可以向外提供的函数,通过一个table返回。
上述代码用同样的方法将数据进行了私有化,只能通过向外提供的函数来操作数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值