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)

输出

相关推荐
星幻元宇VR2 小时前
公共安全实训展厅设备【人防知识学习系统】
科技·学习·安全
心中有国也有家5 小时前
AtomGit Flutter 鸿蒙客户端:情绪日记的时间线实现
学习·flutter·华为·harmonyos
百里香酚兰6 小时前
【python学习笔记】pyttsx3库疑似只播报一次语音
笔记·python·学习
恣逍信点6 小时前
《凌微经》助读:本体论根基——“无之自悖”与“形性一体”
人工智能·科技·学习·程序人生·生活·交友·哲学
耀耀_很无聊7 小时前
12_Redis Lua 脚本踩坑:为什么 tonumber(ARGV[x]) 会得到 nil?
java·redis·lua
chh5638 小时前
C++--string
java·开发语言·网络·c++·学习
chnyi6_ya8 小时前
论文阅读笔记:VideoWeaver — 面向智能体长视频生成的技能评估与进化
论文阅读·笔记·音视频
J_yyy8 小时前
基于Reactor的文件管理服务开发笔记
c++·笔记·reactor·多线程编程·muduo
浩瀚地学9 小时前
【Java基础复习】IO流(四)
java·开发语言·经验分享·笔记·学习
疯狂打码的少年9 小时前
【操作系统】板块总结 + 下期预告(软件工程)
笔记·软件工程