国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Lua面向對象編程之類的簡單實現方式

2024-07-21 23:04:33
字體:
來源:轉載
供稿:網友

先來看一段程序:

 

復制代碼 代碼如下:

function create(name, id)
      local obj = { name = name, id = id }
      function obj:SetName(name)
        self.name = name
      end
      function obj:GetName()
        return self.name
      end
      function obj:SetId(id)
        self.id = id
      end
      function obj:GetId()
        return self.id
      end
      return obj
   end

 

   o1 = create("Sam", 001)

   print("o1's name:", o1:GetName(), "o1's id:", o1:GetId())

   o1:SetId(100)
   o1:SetName("Lucy")

   print("o1's name:", o1:GetName(), "o1's id:", o1:GetId())


輸出結果:
復制代碼 代碼如下:

o1's name: Sam o1's id: 1
o1's name: Lucy o1's id: 100

 

對象工廠模式:

如前面代碼的create函數

用表表示對象:

把對象的數據和方法都放進一張表內,雖然沒有隱藏私有成員,但對于簡單腳本來說可以完全接受

成員方法的定義:

 

復制代碼 代碼如下:

function obj:method(a1,a2,…)…end --等價于
    function obj.method(self,a1,a2,…)…end --等價于
    obj.method=function(self,a1,a2,...)...end

成員方法的調用:

 

 

復制代碼 代碼如下:

obj:method(a1,a2,...) --等價于
    obj.method(obj,a1,a2,...)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 微山县| 抚顺县| 即墨市| 海阳市| 临夏县| 建昌县| 江源县| 新田县| 红桥区| 林芝县| 四子王旗| 静海县| 灵宝市| 台江县| 通河县| 五莲县| 嘉义县| 上杭县| 会理县| 来宾市| 岑溪市| 芦山县| 柞水县| 玛曲县| 蒲城县| 克拉玛依市| 望谟县| 闽侯县| 抚宁县| 同心县| 邹城市| 珠海市| 东乡族自治县| 鹤山市| 阿拉尔市| 綦江县| 兴仁县| 三明市| 紫云| 青岛市| 广汉市|