第二章 OC程序設(shè)計(jì)


對(duì)象生成后只能調(diào)用一次初始化方法。

有的類也可以不通過(guò)alloc而通過(guò)使用別的方法來(lái)生成對(duì)象,有的類也可能返回一個(gè)初始化好的對(duì)象。

所有的OC編譯指令都是以@開(kāi)頭,以便和c語(yǔ)言字符串區(qū)分。

類名不能和變量名以及方法名相同。

方法的的返回值類型需要用()包住。

類的方法名和實(shí)例變量名可以相同。

類的實(shí)現(xiàn)部分不需要再次聲明父類(接口部分聲明的時(shí)候必須寫(xiě)上父類)

在方法內(nèi)部如果定義的局部變量與實(shí)例變量相同,實(shí)例變量就會(huì)被覆蓋,這時(shí)將無(wú)法訪問(wèn)實(shí)例變量。

方法中的self指的是實(shí)例對(duì)象自身,是OC內(nèi)置的變量。self支持賦值等操作,也可以作為返回值被返回。使用self時(shí)一定要小心,要仔細(xì)分辨到底調(diào)用了哪個(gè)類的方法。

super并不確定指向某個(gè)對(duì)象,所以super只能被用于調(diào)用父類的方法,不能通過(guò)super完成賦值,也不能把方法的返回值指定為super。

程序的書(shū)寫(xiě)風(fēng)格:

Objective-c也被稱為混合編程語(yǔ)言,在編程時(shí)既可以使用c語(yǔ)言的編程風(fēng)格,又可以使用面向?qū)ο蟮墓δ?,程序中面向?qū)ο蟮牟糠诌€是使用面向?qū)ο蟮木幊田L(fēng)格為好。以下幾種情況建議使用c語(yǔ)言的函數(shù):

1.想使用成熟的c語(yǔ)言函數(shù)模塊時(shí)

2.想使用以c語(yǔ)言聲明的接口時(shí),例如Unix的系統(tǒng)調(diào)用等

3.和面向?qū)ο鬀](méi)有關(guān)系,用于數(shù)學(xué),計(jì)算等時(shí)

4.類定義時(shí)

5.對(duì)速度有較高要求時(shí)(如果將系統(tǒng)中那些需要被反復(fù)調(diào)用上萬(wàn)甚至上百萬(wàn)次的功能改成函數(shù)調(diào)用,速度就會(huì)快很多,而除此以外的絕大部分則都沒(méi)必要改成函數(shù)調(diào)用的形式)

//類的實(shí)現(xiàn)文件中定義的函數(shù)不可以直接使用類中定義的實(shí)例變量和self變量,但可以把這些作為參數(shù)傳遞給函數(shù)。

靜態(tài)變量的定義:

靜態(tài)變量的生命周期為從程序的執(zhí)行開(kāi)始到結(jié)束,無(wú)論生成了多少個(gè)對(duì)象,都只有一個(gè)靜態(tài)變量存在,也就是說(shuō)多個(gè)對(duì)象會(huì)共享同一個(gè)靜態(tài)變量。

#import和#include的基本功能一樣,稍有不同的是#import不存在嵌套引用的問(wèn)題,因?yàn)镺C中#import內(nèi)置了判斷同一個(gè)文件是否已被引入的功能。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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