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)

输出

相关推荐
正牌强哥30 分钟前
别再用天价软件做量化研究了:我开源了一个全流程因子分析平台FactorHub
学习·开源·量化交易
于眠牧北32 分钟前
重写RedisTemplate后在lua脚本中传递参数不需要二次转换
java·junit·lua
执笔论英雄33 分钟前
【大模型推理】cudastream 学习
linux·运维·学习
崔高杰42 分钟前
训练数据选择又有新方法了?——两篇文章的阅读笔记 Less is Enough和 OPUS
人工智能·笔记·机器学习
爱吃奶酪的松鼠丶43 分钟前
LangGraph 实战笔记:用 AI 发起流程应用
人工智能·笔记
YLXA1 小时前
1.helle_cuda学习
linux·学习·算法
小付同学呀1 小时前
C语言学习(九)——C判断三元运算符
c语言·开发语言·学习
撩妹小狗1 小时前
DIY无人机--升压降压电路
学习·diy·原理图·升压降压电路
YYYing.1 小时前
【Linux/C++多线程篇(一) 】多线程编程入门:从核心概念到常用函数详解
linux·开发语言·c++·笔记·ubuntu
csdn_aspnet1 小时前
技术难题:高并发场景下的“超卖”现象(库存一致性)
redis·lua·秒杀