lua学习笔记19(面相对象学习的一点总结)

Lua 复制代码
print("*****************************面相对象总结*******************************")
object={}
--实例化方法
function object:new()
	local obj={}
	self.__index=self
	setmetatable(obj,self)
	return obj
end-------------------------如何new一个对象
function  object:subClass(className)
	_G[className]={}
	local obj=_G[className] 
	obj.base=self
	self.__index=self
	setmetatable(obj,self)
end------------------------如何实现继承

object:subClass("GameObject")
GameObject.posX=0
GameObject.posY=0
function GameObject:move()
	self.posX=self.posX+1
	self.posY=self.posY+1
end
--实例化对象的使用
 local obj=GameObject:new()
 print(obj.posX)
 obj:move()
 print(obj.posX)

 local obj2=GameObject:new()
 print(obj2.posX)
 obj2:move()
 print(obj2.posX)
 --申明一个新的类 player 继承gameobject

 GameObject:subClass("player")
 function  player:move()---------------------如何重写方法
 	--base调用父类方法 用.自己传第一个参数
 	self.base.move(self)
 end
 print("*****")
 local p1=player:new()
 print(p1.posX)
 p1:move()
 print(p1.posX)

输出

相关推荐
Asus.Blogs1 小时前
SSE + Resty + Goroutine + Channel 完整学习笔记
笔记·学习·golang
雍凉明月夜1 小时前
深度学习网络笔记Ⅱ(常见网络分类1)
人工智能·笔记·深度学习
卷心菜_1 小时前
代码随想录笔记-背包问题
笔记
北岛寒沫1 小时前
北京大学国家发展研究院 经济学辅修 经济学原理课程笔记(第十三课 垄断竞争)
人工智能·经验分享·笔记
love530love2 小时前
【笔记】Intel oneAPI 开发环境配置
人工智能·windows·笔记·oneapi·onednn·deep neural
HansenPole8252 小时前
元编程笔记
笔记·网络协议·rpc
charlie1145141912 小时前
Git团队协作完全入门指南(上)
笔记·git·学习·教程·工程
迷茫的启明星2 小时前
Git命令学习
git·学习
lakernote3 小时前
EasyPostman:开源免费的 Postman 替代方案,完美支持国产化操作系统
开源·lua·postman