欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自定义脚本语言引擎开发纪实 - 类的嵌套

程序员文章站 2022-04-10 15:39:17
...

类的实现内部,可以再包含类的定义,称之为嵌套类

备注:访问嵌套类的全局变量,需要嵌套类的全路径,见下面的例子。

class animal
	func __init__(self, type)
		self.type = type
	end
	
	func __del__(self)
	end
	
	class bird
		func __init__(self, name, age)
			self.name = name
			self.age = age
		end
		
		func __del__(self)
		end
		
		class bigbird
			sum = 0
			func __init__(self, big)
				self.big = big
				animal.bird.bigbird.sum = animal.bird.bigbird.sum + 1
				//下面的调用方式错误,无法找到这个类,哪怕是在类的函数的内部,需要用上面的方式,用类的完整路径
				//bigbird.sum = bigbird.sum + 1
			end
			
			func __del__(self)
				animal.bird.bigbird.sum = animal.bird.bigbird.sum - 1
			end
		endclass
	endclass
endclass

测试

_animal = animal("鸟类")

_bird = _animal.bird("天鹅", 5)

_bigbird = _bird.bigbird(123)

_bigbird2 = animal.bird.bigbird(456)

js.debug.log("log 共" + animal.bird.bigbird.sum + "只鸟" + "\t 第一只鸟多大?" + _bigbird.big + "\t 第二只鸟多大?" + _bigbird2.big)

运行结果:

 [26376] log 共2只鸟  第一只鸟多大?123  第二只鸟多大?456