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)

输出

相关推荐
码小文1 小时前
MCU、MPU、GPU、Soc、DSP、FPGA、CPLD……它们到底是什么?
笔记·单片机·嵌入式硬件·学习·ic常识
摆烂z1 小时前
机器学习-黑马笔记
人工智能·笔记·机器学习
汇能感知2 小时前
光谱相机叶绿素荧光成像技术的原理
经验分享·笔记·科技
饭碗、碗碗香2 小时前
【开发常用命令】:docker常用命令
linux·运维·笔记·学习·docker·容器
爱意随风起风止意难平4 小时前
如何用AI赋能学习
人工智能·学习·aigc
viperrrrrrrrrr74 小时前
大数据学习(137)-大数据组件运行时角色
大数据·hive·学习·flink·spark
月白风清江有声5 小时前
lsprepost岩石爆炸仿真——学习札记2
学习
万变不离其宗_85 小时前
echarts使用笔记
前端·笔记·echarts
重庆小透明5 小时前
【从零学习JVM|第七篇】快速了解直接内存
学习
梦境虽美,却不长5 小时前
C语言 学习 宏命令(预处理) 2025年6月9日14:41:39
c语言·开发语言·学习