日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Cocos2d-x 脚本语言Lua中的面向对象

發布時間:2025/3/20 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cocos2d-x 脚本语言Lua中的面向对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Cocos2d-x 腳本語言Lua中的面向對象

面向對象不是針對某一門語言,而是一種思想。在面向過程的語言也能夠使用面向對象的思想來進行編程。

在Lua中,并沒有面向對象的概念存在,沒有類的定義和子類的定義。但相同在Lua中能夠利用面向對象的思想來實現面向對象的類繼承。


一、復制表的方式面向對象--Lua中的面向對象 --[[復制表方式面向對象參數為一張表。通過遍歷這張表取值,賦給一張空表,最后返回新建的表。來達到克隆表 ]] function clone(tab)local ins = {}for key, var in pairs(tab) doins[key] = varendreturn ins end--[[復制表第一參數是目標表,第二個參數是須要復制的表通過遍歷tab來取值將它賦值到目標表中 ]] function copy(dist,tab)for key, var in pairs(tab) dodist[key] = varend end-- 定義一張空表,相當于一個類 People ={}--function People.sayHi() -- print("People say hi") --end-- 定義類中的方法sayHi,傳入一個self參數 People.sayHi = function (self)print("People say hi:"..self.name) end-- 定義一個new方法,傳進一個name參數,通過克隆People這張表來生成一個對象 -- 相當于類其中的一個構造方法 People.new = function (name)local self = clone(People)self.name = namereturn self end--local p = clone(People) --p.sayHi() --生成一個新的對象 local p = People.new("ZhangSan") --p.sayHi(p) --p:sayHi()--定義一張空表,也代表一個類 Man = {} --Man中的構造方法。實現Lua中類的繼承 Man.new = function (name)local self = People.new(name)--附加Man中全部的鍵值對到People中的實例中去copy(self,Man)return self endMan.sayHello = function ()print("Man say hello") end--重寫父類People中的sayHi方法 Man.sayHi = function (self)print("Man sayHi "..self.name) end--創建Man的一個實例 local m = Man.new("Lisi") m:sayHi()
以上代碼已經有具體的凝視。讀者須要細致閱讀這里所給出的樣例。
二、使用函數閉包的形式實現面向對象--以函數閉包的形式實現面向對象--定義一個方法,函數閉包實現一個類的概念 function People(name)local self = {}--初始化方法,私有的local function init()self.name = nameendself.sayHi = function ()print("Hello "..self.name)end--調用初始化init()return self end--實例化一個對象 local p = People("ZhangSan") p:sayHi()--函數閉包的形式實現類繼承 function Man(name)local self = People(name)-- local function init() -- -- endself.sayHello = function ()print("Hi "..self.name)endreturn self endlocal m = Man("Lisi") --m:sayHello() m:sayHi()
以上兩種方式均可實現面向對象。目測另外一種方法更為簡潔一些,具體使用依照個人的喜好來做。








轉載于:https://www.cnblogs.com/mengfanrong/p/5140406.html

總結

以上是生活随笔為你收集整理的Cocos2d-x 脚本语言Lua中的面向对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。