lua學習筆記day13 物件的私有性

2021-08-19 10:27:44 字數 850 閱讀 5460

lua中構造類的時候,有些函式是提供給類中的方法使用的,並不想對外提供。這個時候就需要通過一定的方式,讓外部無法訪問這個類這些私有方法。

在之前的繼承和多繼承中,是通過__index的方法達到繼承的目的,但是這樣的方式會繼承類內部所有的內容。為了保護私有部分,需要換一種繼承方式。

**如下:

function

newaccount(initialbalance)

local self =

local withdraw = function(v)

self.balance = self.balance - v

endlocal deposit = function (v)

self.balance = self.balance + v

endlocal extra = function ()

if self.balance > lim then

return self.balance * 0.1

else

return

0end

endlocal

function

getbalance()

return self.balance + extra()

endreturn

end

上述**,將區域性變數和區域性函式都放在了類的內部。

extra函式只會被用於函式內部的呼叫,沒有必要也不允許被外部訪問。

為了滿足這樣的需求,把extra函式用區域性的方式宣告。然後將可以向外提供的函式,通過乙個table返回。

上述**用同樣的方法將資料進行了私有化,只能通過向外提供的函式來運算元據。

DAY13學習筆記

疊加多個裝飾器 當乙個被裝飾的物件同時疊加多個裝飾器時 裝飾器的載入順序是 自下而上。迭代器 什麼是迭代器 迭代指的是乙個重複的過程,每一次重複都是基於上一次的結果而來的。迭代器指的是迭代取值的工具,該工具的特點是可以不依賴於索引取值。為何要用迭代器 為了找出一種通用的 可以不依賴於索引的迭代取值方...

C 學習筆記 day13

1 資料 記憶體中 變數 磁碟上 檔案 2 把資料從其他的裝置搬到記憶體中 輸入 讀 把記憶體中的資料放到其他裝置中 輸出 寫 3 流物質的定向移動,輸入輸出流中是資料的定向移動 輸入流的源頭 檔案 目的地 記憶體 輸出流的源頭 記憶體 目的地 檔案 4 標準輸出裝置 顯示器 標準輸入裝置 鍵盤 鍵...

力扣學習筆記day13

編寫乙個程式,找到兩個單鏈表相交的起始節點。如下面的兩個鍊錶 在節點 c1 開始相交 輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the node with value 8 輸...