物件導向程式設計
(object oriented programming是一種非常流行的計算機程式設計架構。
lua中最基本的結構是table,所以需要用table來描述物件的屬性。
lua中的function可以用來表示方法。那麼lua中的類可以通過table + function模擬出來。
簡例:-- czhenywww.cppcns.coma lua 物件導向
-- 對於乙個物件來說, 屬性 方法
--[[ 兩種定義函式的方式
person.eat = function()
print(person.name.."在寫lua"iaqqycyh)
endfunction person.eat()
print(person.name.."在寫lua")
end--]]
--作為原型
person =
function person:eat()
pr程式設計客棧int(self.name.."的年齡是"..self.age)
endfunction person:new(o) -- 若o是空的則返回false
local t = o or {}
--[[ 和下面設定結果一樣,只是兩種不同的方式
setmetatable
self.__index=self
--]]
setmetatable(t,) --設定元表
--呼叫乙個屬性的時候,如果t中不存在,就會在__index所指的table中查詢
return t
end-- 類似於通過建構函式建立物件
person1 = person:new()
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()
priniaqqycyht(stu1.grade)
冒號和點定義函式的區別:
-- 使用冒號和點來的定義函式,建議用什麼定義函式,用什麼呼叫
person =
function person:eat()
print(self.name.."的年齡是"..self.age)
endperson.eat(person)
a = person
--冒號呼叫self自動賦值
a:eat()
--通過點來呼叫的時候,self不會自動賦值,必須通過引數傳遞
a.eat(a)
總結
lua 物件導向程式設計
物件的實現 在lua中table就是一種物件 1.有自己的狀態 2.有自己的唯一標識self 3.有自己的生命週期 使用table可以自己實現物件導向的幾乎所有特性 把函式定義在table中,並使用t.func的形式訪問,如同方法呼叫 account function account.withdra...
Lua核心程式設計之基礎
由於本人這個學期選了一門選修課 cocos2d x移動遊戲開發 所以想整理一下筆記了。不保證部落格的全面性,我只記一些我認為需要記錄的,最好的學習方式還是看書。學習資料 cocos2d x之lua核心程式設計 極客學院 老師的ppt 學習環境 mac os x,sublime text,cocos2...
物件導向程式設計之術語
術語 含義屬性 一小段資訊,例如顏色 高度或重量,描述物件的乙個特性 字段物件內部的指定值 操作屬於物件的一段 方法操作的同義詞 訊息從乙個物件傳送到另乙個物件的請求 呼叫執行操作,以響應訊息 執行呼叫的同義詞 關聯兩個物件之間的直接或間接連線 聚合強關聯,隱含著某種部分 一體層次結構 復合強聚合,...