Lua中的面向对象的一个示例

Lua中的面向对象的一个示例

为什么要做这个总结

Lua是一门寄宿型语言,相对来说没有那么严格,也没有面向对象的一些特征(封装,继承,多态),所以用Lua中的Table来映射一下面向对象的三大特征。

直接上一个例子

是有关图形面积周长计算的一个示例:

local Shape = {
	height = 0,
	weight = 0,
	radius = 0,
	shape_perimeter = 0,
	shape_area = 0,
	
	cal_p = function(self)
		return 0
	end,
	
	cal_a = function(self)
		return 0
	end
}

local Circle = {

	new = function(self,radius)
		return setmetatable({radius = radius},{__index = self})
	end,
	
	cal_p = function(self)
		return self.radius*math.pi*2
	end,

	cal_a = function(self)
		return math.pi*self.radius*self.radius
	end
}

setmetatable(Circle,{__index = Shape})

local circleIns = Circle:new(6)

print("圆的面积是:",circleIns:cal_a())
print("圆的周长是:",circleIns:cal_p())

当然,还可以后续扩展一些其他的图片,比如:三角形、矩形、梯形…<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值