Lua语言中面向对象的实现

本文提供了一个Lua语言面向对象编程的简单实例,包括类的定义、构造函数、方法实现以及对象间的交互,旨在展示Lua语言在面向对象编程方面的特性与应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里是一个lua面向对象实现很简单的例子。

Acount = {
	balance = 0,
	withdraw = function(self ,v)
		self.balance = self.balance - v
	end
}

function Acount:deposit(v)
	self.balance = self.balance + v
end

function Acount:new(o)
	--让o 不可能为空,是一个表
	o = o or {}
	--这里的self是Acount自身 ,则表o的元表是Acount
	setmetatable(o ,self)
	--__index指向Account自身,当new的对象(也就是表)找不到元素时,则会从Account表中找。
	self.__index = self
	return o
end

a = Acount:new({balance = 0})
b = Acount:new{balance = 55}

--这里a调用deposit方法,但是找不到,于是去它的元表里找
--相当于:gemetatable(a).__index.deposit(a ,1000)
a:deposit(1000)
b:deposit(1000)
print(a.balance)
print(b.balance)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值