— Czhenya Lua 面向对象
— 对于一个对象来说, 属性 方法
–[[ 两种定义函数的方式
person.eat=function()
print(person.name..”在写LUA”)
end
function person.eat()
print(person.name..”在写LUA”)
end
–]]
–作为原型
Person={name=’Czhena’,age=22}
function Person:eat()
print(self.name..”的年龄是”..self.age)
end
function Person:new(o) — 若o是空的则返回false
local t=o or {}
–[[ 和下面设置结果一样,只是两种不同的方式
setmetatable{t,self}
self.__index=self
–]]
setmetatable(t,{__index=self}) –设置元表
–调用一个属性的时候,如果t中不存在,就会在__index所指的table中查找
return t
end
— 类似于通过构造函数创建对象
person1=Person:new({weight=100})
person2=Person:new()
print(person1.name)
print(person1.weight)
print(person2.name)
person1.name=”CZY” –不会改变元表,添加到person.name
person1:eat()
person2:eat()
–继承
Student=Person:new()
Student.grade=1
stu1=Student:new()
stu1:eat()
print(stu1.grade)
— Czhenya Lua 面向对象
— 对于一个对象来说, 属性 方法
–[[ 两种定义函数的方式
person.eat=function()
print(person.name..”在写LUA”)
end
function person.eat()
print(person.name..”在写LUA”)
end
–]]
–作为原型
Person={name=’Czhena’,age=22}
function Person:eat()
print(self.name..”的年龄是”..self.age)
end
function Person:new(o) — 若o是空的则返回false
local t=o or {}
–[[ 和下面设置结果一样,只是两种不同的方式
setmetatable{t,self}
self.__index=self
–]]
setmetatable(t,{__index=self}) –设置元表
–调用一个属性的时候,如果t中不存在,就会在__index所指的table中查找
return t
end
— 类似于通过构造函数创建对象
person1=Person:new({weight=100})
person2=Person:new()
print(person1.name)
print(person1.weight)
print(person2.name)
person1.name=”CZY” –不会改变元表,添加到person.name
person1:eat()
person2:eat()
–继承
Student=Person:new()
Student.grade=1
stu1=Student:new()
stu1:eat()
print(stu1.grade)
© 版权声明
文章版权归作者所有,未经允许请勿转载。