Objective-C學(xué)習(xí)筆記中OOP之復(fù)合和存取方法
Objective-C學(xué)習(xí)筆記中OOP之復(fù)合、存取方法是本文喲啊介紹的內(nèi)容,一談起OOP,就會想起教科書式的OOP概念:封裝、繼承、多態(tài),下面簡答的來談?wù)勊麄兏髯缘膮^(qū)別。
粗淺的解釋封裝就是對數(shù)據(jù)進(jìn)行隱藏;繼承就是子類繼承父類(class)或接口(interface)的方法和屬性,并實(shí)現(xiàn)代碼復(fù)用;多態(tài)就是重載和重寫。這樣的解釋仍僅僅只是面向?qū)ο蟮幕咎卣?,很淺顯,根本無法讓人知道如何去思考和設(shè)計面向?qū)ο缶幊?。來看本文介紹的OOP的使用。
- if(self = [ super init] { …
若要超類可以完成所需的一次性初始化,需要調(diào)用[super init]。init方法返回的值(id型數(shù)據(jù),即泛型對象指針)描述了被初始化的對象。
將[super init]的結(jié)果賦給self是Objective-C的標(biāo)準(zhǔn)慣例。這么做是為了防止超類在初始化過程中返回的對象不同于原先創(chuàng)建的對象。
- - (id) init // 初始化對象
- {
- if (self = [super init]) {
- // 初始化內(nèi)容
- }
- return self;
- }
存取方法
存取方法(accessor method)是用來讀取或改變對象特定屬性的方法。
setter方法:術(shù)語修改方法(mutator)是用來改變對象狀態(tài)的方法。
getter方法:getter方法為使用對象的代碼提供了讀取對象屬性的途徑。
注意:在對其他對象的屬性進(jìn)行操作時,應(yīng)該始終使用對象所提供的存取方法,永遠(yuǎn)不要直接改變其他對象屬性的數(shù)值。例如main()不應(yīng)通過 car->engine 直接改變engine屬性的值,而應(yīng)使用setter方法進(jìn)行更改。
命名規(guī)范:setter方法根據(jù)它所更改的屬性的名稱來命名,并加上前綴"set",getter方法則僅僅根據(jù)其返回的屬性的名稱來命名(不加get前綴)。
小結(jié):Objective-C學(xué)習(xí)筆記中OOP之復(fù)合和存取方法的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!