Lua 面向對象


面向對象
  組成:成員變量、成員函數
  要求:每個對象,由類生成,有自己的成員變量、使用共同的成員函數

Lua構造面向對象
  原理
    用table表示成員變量
    用function表示成員函數
    用metatable關聯對象和類
  實現

 1 -- 空類
 2 Class = {}
 3 
 4 -- 指向自己
 5 Class.__index = Class
 6 
 7 -- 成員變量
 8 Class.val = "Class"
 9 
10 -- 成員函數
11 function Class:print()    --相當 Class.print(self)
12     print("Class:print val = "..self.val)
13 end
14 
15 function Class:modify()
16     self.val = "modify"
17 end
18 
19 -- 構造函數
20 function Class:new(initVal)
21     -- 申請空間
22     local object = {}
23 
24     -- 初始數據
25     object.val = initVal
26 
27     -- 關聯class
28     setmetatable(object,Class)
29 
30     -- 返回對象
31     return object
32 end
33 
34 -- test
35 local obj = Class:new("object")
36 print("before modify")
37 Class:print()
38 obj:print()
39 print("after modify")
40 obj:modify()
41 Class:print()
42 obj:print()
43 
44 -- output
45 -- before modify
46 -- Class:print val = Class
47 -- Class:print val = object
48 -- after modify
49 -- Class:print val = Class
50 -- Class:print val = modify

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM