校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Lua面向對象編程之基礎結構table簡例

Lua面向對象編程之基礎結構table簡例

熱門標簽:杞縣地圖標注app 外呼系統一天耗費多少流量 艾比利外呼系統 免費門店地圖標注注冊入駐 海口智能語音電銷機器人好用嗎 衡水外呼線路解決 昆明電話外呼系統好么 電話機器人每天搜索多少次 陜西便宜電銷機器人軟件

面向對象編程

(Object Oriented Programming,OOP)是一種非常流行的計算機編程架構。

Lua中最基本的結構是table,所以需要用table來描述對象的屬性。

Lua中的function可以用來表示方法。那么Lua中的類可以通過table + function模擬出來。

簡例:

-- 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)

冒號和點定義函數的區別:

-- 使用冒號和點來的定義函數,建議用什么定義函數,用什么調用
person = {name="Czhenya",age=22}
function person:eat()
  print(self.name.."的年齡是"..self.age)
end
person.eat(person)
a = person
--冒號調用self自動賦值
a:eat()
--通過點來調用的時候,self不會自動賦值,必須通過參數傳遞
a.eat(a)

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • 深入談談lua中神奇的table
  • Lua Table轉C# Dictionary的方法示例
  • Lua中設置table為只讀屬性的方法詳解
  • Lua編程示例(一):select、debug、可變參數、table操作、error
  • 舉例講解Lua中的Table數據結構
  • Lua table中安全移除元素的方法
  • Lua的table庫函數insert、remove、concat、sort詳細介紹
  • C++遍歷Lua table的方法實例
  • Lua中釋放table占用內存的方法
  • Lua中table的遍歷詳解
  • Lua中獲取table長度問題探討
  • Lua中獲取table長度的方法
  • Lua中table里內嵌table的例子

標簽:臨滄 西寧 宿遷 南京 昌都 營口 海口 泰安

巨人網絡通訊聲明:本文標題《Lua面向對象編程之基礎結構table簡例》,本文關鍵詞  Lua,面向,對象,編程,之,基礎,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua面向對象編程之基礎結構table簡例》相關的同類信息!
  • 本頁收集關于Lua面向對象編程之基礎結構table簡例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 佛冈县| 榆树市| 浑源县| 沾益县| 靖西县| 额尔古纳市| 金溪县| 三台县| 甘谷县| 三台县| 军事| 平罗县| 昭通市| 都匀市| 龙南县| 砚山县| 永和县| 涪陵区| 桐庐县| 林甸县| 天祝| 武乡县| 馆陶县| 宁化县| 临安市| 崇礼县| 双鸭山市| 遵化市| 绥阳县| 姜堰市| 万全县| 田东县| 吉木乃县| 武乡县| 水城县| 宜宾市| 阿荣旗| 邹城市| 衡东县| 仁寿县| 蒙阴县|