Lua的OOP编程

 

 

 

表的字段与方法

 

--本质上lua的OOP编程, 使用table来实现模拟
--定义空表,相当有一个类
Person = {}
--定义字段
Person.Name="刘坤"
Person.Gender=""
Person.Profession="CS.GO"
Person.Height=170
--定义方法
Person.Speak= function()    --匿名函数定义
    print("刘坤的瘤子真多啊")
end

function Person.Walking()   --常用方式定义
    print("刘坤是个Five")
end

function Person.ShowInfo()
    print("调用我个人的身高")
    print("身高 : "..Person.Height)
    print("职业 : "..Person.Profession)
end

--调用字段及方法
print(Person.Name)
print(Person.Gender)
print(Person.Profession)
print(Person.Height)
--调用方法
print(Person.Speak())
print(Person.Walking())
print(Person.ShowInfo())

引入局部变量降低程序的耦合性

Person = {}
--local people = Person
--定义字段
Person.Name="刘坤"
Person.Gender=""
Person.Profession="CS.GO"
Person.Height=170
--定义方法
function Person:Speak ()    --匿名函数定义
    print("刘坤的瘤子真多啊")
end

function Person:Walking()   --常用方式定义
    print("刘坤是个Five")
end

function Person:ShowInfo()
    print("调用我个人的身高")
    print("身高 : "..self.Height)
    print("职业 : "..self.Profession)
    self.Speak()
    self.Walking()
end

--改善函数定义方式,使用self关键字 (配合函数使用'冒号'定义函数)
function Person:Show()
    print("调用我个人的身高")
    print("身高 : "..self.Height)
    print("职业 : "..self.Profession)
    self.Speak()
    self.Walking()
end

a = Person  --将Person赋值给a
Person = nil    --销毁Person的指针
a.ShowInfo();   --继续调用原来的方法, 任然可以调用

猜你喜欢

转载自www.cnblogs.com/shansm/p/12587115.html
OOP
今日推荐