实现lua面向对象的private属性

代码示例

function GetPerson()

	-- 要封装的类
	local Person =
	{
		ID		= 0,			-- ID
		name 	= "",			-- 名字
	}

	--------------------------	    封装的操作        ---------------------------------
	-- 设置ID
	local function SetID(ID)
		Person.ID = ID
	end

	-- 获取ID
	local function GetID()
		return Person.ID
	end

	-- 设置名字
	local function SetName(name)
		Person.name = name
	end

	-- 获取名字
	local function GetName()
		return Person.name
	end

	-- 对外提供的接口
	-- 原理:新建一个临时表,外面只能操作这里定义的操作
	return {SetID = SetID, GetID = GetID, SetName = SetName, GetName = GetName}
end

------------------------------       测试代码        ------------------------------------

local person = GetPerson()
person.SetID(100)
print(person.GetID())
person.SetName("小明")
print(person.GetName())

测试结果:


猜你喜欢

转载自blog.csdn.net/yzf279533105/article/details/80386018