Lua 面向?qū)ο?/h1>

面向?qū)ο缶幊蹋∣bject Oriented Programming,OOP)是一種非常流行的計算機編程架構(gòu)。

以下幾種編程語言都支持面向?qū)ο缶幊蹋?/p>

C++

Java

Objective-C

Smalltalk

C#

Ruby


面向?qū)ο筇卣?/p>

1) 封裝:指能夠把一個實體的信息涝婉、功能、響應(yīng)都裝入一個單獨的對象中的特性。

2) 繼承:繼承的方法允許在不改動原程序的基礎(chǔ)上對其進行擴充唇敞,這樣使得原功能得以保存,而新功能也得以擴展咒彤。這有利于減少重復編碼疆柔,提高軟件的開發(fā)效率。

3) 多態(tài):同一操作作用于不同的對象镶柱,可以有不同的解釋旷档,產(chǎn)生不同的執(zhí)行結(jié)果。在運行時歇拆,可以通過指向基類的指針鞋屈,來調(diào)用實現(xiàn)派生類中的方法。

4)抽象:抽象(Abstraction)是簡化復雜的現(xiàn)實問題的途徑故觅,它可以為具體問題找到最恰當?shù)念惗x厂庇,并且可以在最恰當?shù)睦^承級別解釋問題。


Lua 中面向?qū)ο?/p>

我們知道逻卖,對象由屬性和方法組成宋列。LUA中最基本的結(jié)構(gòu)是table,所以需要用table來描述對象的屬性评也。

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

至于繼承盗迟,可以通過metetable模擬出來(不推薦用坤邪,只模擬最基本的對象大部分時間夠用了)。

Lua中的表不僅在某種意義上是一種對象。像對象一樣,表也有狀態(tài)(成員變量);也有與對象的值獨立的本性舀瓢,特別是擁有兩個不同值的對象(table)代表兩個不同的對象黔衡;一個對象在不同的時候也可以有不同的值蚓聘,但他始終是一個對象;與對象類似盟劫,表的生命周期與其由什么創(chuàng)建夜牡、在哪創(chuàng)建沒有關(guān)系。對象有他們的成員函數(shù)侣签,表也有:

這個定義創(chuàng)建了一個新的函數(shù),并且保存在Account對象的withdraw域內(nèi)影所,下面我們可以這樣調(diào)用:

一個簡單實例

以下簡單的類包含了三個屬性: area, length 和 breadth蹦肴,printArea方法用于打印計算結(jié)果:

創(chuàng)建對象

創(chuàng)建對象是位類的實例分配內(nèi)存的過程。每個類都有屬于自己的內(nèi)存并共享公共數(shù)據(jù)猴娩。

訪問屬性

我們可以使用點號(.)來訪問類的屬性:

訪問成員函數(shù)

我們可以使用冒號:來訪問類的成員函數(shù):

內(nèi)存在對象初始化時分配阴幌。

完整實例

以下我們演示了 Lua 面向?qū)ο蟮耐暾麑嵗?/p>

執(zhí)行以上程序,輸出結(jié)果為:

Lua 繼承

繼承是指一個對象直接使用另一對象的屬性和方法卷中×哑撸可用于擴展基礎(chǔ)類的屬性和方法。

以下演示了一個簡單的繼承實例:

接下來的實例仓坞,Square 對象繼承了 Shape 類:

完整實例

以下實例我們繼承了一個簡單的類,來擴展派生類的方法腰吟,派生類中保留了繼承類的成員變量和方法:

執(zhí)行以上代碼无埃,輸出結(jié)果為:

函數(shù)重寫

Lua 中我們可以重寫基礎(chǔ)類的函數(shù),在派生類中定義自己的實現(xiàn)方式:


內(nèi)容來自:runoob.com 菜鳥教程

整理:極動云毛雇,寧波家電物聯(lián)網(wǎng)云平臺

CONTACT US: http://www.iot-jd.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末嫉称,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子灵疮,更是在濱河造成了極大的恐慌织阅,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件震捣,死亡現(xiàn)場離奇詭異荔棉,居然都是意外死亡,警方通過查閱死者的電腦和手機蒿赢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門润樱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人羡棵,你說我怎么就攤上這事壹若。” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵店展,是天一觀的道長养篓。 經(jīng)常有香客問我,道長赂蕴,這世上最難降的妖魔是什么柳弄? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮睡腿,結(jié)果婚禮上语御,老公的妹妹穿的比我還像新娘。我一直安慰自己席怪,他們只是感情好应闯,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著挂捻,像睡著了一般碉纺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刻撒,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天骨田,我揣著相機與錄音,去河邊找鬼声怔。 笑死态贤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的醋火。 我是一名探鬼主播悠汽,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芥驳!你這毒婦竟也來了柿冲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤兆旬,失蹤者是張志新(化名)和其女友劉穎假抄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丽猬,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡宿饱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宝鼓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刑棵。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖愚铡,靈堂內(nèi)的尸體忽然破棺而出蛉签,到底是詐尸還是另有隱情胡陪,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布碍舍,位于F島的核電站柠座,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏片橡。R本人自食惡果不足惜妈经,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捧书。 院中可真熱鬧吹泡,春花似錦、人聲如沸经瓷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舆吮。三九已至揭朝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間色冀,已是汗流浹背潭袱。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锋恬,地道東北人屯换。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像与学,于是被迫代替她去往敵國和親趟径。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容