<7>Lua类的表的实例创建

根据上一节知识所述Lua中没有像C、C++、JAVA中的类概念,面向对象等 ,但我们可以模拟出来

如下


代码如下:

--创建类的表
local Person = {}

function Person:setName()
	print("Person:setName()")
end
--.....
--new实例函数
function Person:new(instance)
	if not instance then
		instance = {}
	end
	
	local meta_Person = {
		__index = self,
	}
	
	setmetatable(instance,meta_Person)
	return instance
end

--实例化
local man = Person:new()
man.setName()  --Person:setName()

--实例化二
local woman = Person:new({
	name = "xiaohong",
	age = 24,
	sex = 1,
})
print(woman.name)
print(woman.setName)

面向对象的基本步骤:

--(1)定义一个类的表;

--(2)定义一个实例的表;

--(3)为这个实例的表加一个元素,并且元表__index指向了这个类的表;

--(4)利用self机制,表的实例:表的函数的时候,隐式的帮我们传递了这个实例的表为self到函数里面;

猜你喜欢

转载自blog.csdn.net/jadeshu/article/details/79846705