物件導向大家都不陌生了, lua可以使用表(table) , 元表(metatable)來模擬物件導向設計 ,
我們來使用lua寫乙個簡單的student類
-- 宣告型別
student = {};
-- 設定__index元方法(關鍵)
student.__index = student;
-- 定義建構函式
function student:create()
--產生乙個例項
local instance = ; --姓名、年齡 屬性
setmetatable(instance, self); --關鍵,設定元表,這裡的self是student
return instance;
end-- 定義玩耍方法(使用.)
student.play = function(s)
print (s.name.."玩耍開始了")
end-- 定義學習方法(使用.)
function student.study(s)
print (s.name.."學習開始了");
end-- 定義列印方法(使用:)
function student:show()
print ( "姓名:"..self.name ,"年齡:"..self.age);--當stu1呼叫時,self指向stu1 ,當student呼叫時,self指向student,
endlocal stu1 = student:create();
stu1.name ="張三"
stu1.age =12
stu1:show()
stu1.play(stu1)
stu1.study(stu1)
print("---------------------------")
local stu2 = student:create();
stu2.name ="李四"
stu2.age =23
stu2:show()
stu2.play(stu2)
stu2.study(stu2)
執行結果
lua物件導向
直接貼 參考的也是別人的,只不過其中幾點,增加一點自己的理解 local baseclass print baseclass是 tostring baseclass 定義index屬性,指向本身 baseclass.index baseclass 定義建構函式 function baseclass ...
Lua 物件導向
記錄學習過程 建立日期 2019 04 14 物件由屬性和方法組成。lua中最基本的結構是table,所以需要用table來描述物件的屬性。lua 中的 function 可以用來表示方法。那麼lua中的類可以通過 table function 模擬出來。乙個簡單的物件導向例子 屬性 person ...
Lua 物件導向
我們知道,物件由屬性和方法組成。lua中最基本的結構是table,所以需要用table來描述物件的屬性。lua中的function可以用來表示方法。那麼lua中的類可以通過table function模擬出來。至於繼承,可以通過metetable模擬出來 不推薦用,只模擬最基本的物件大部分夠用了 l...