OC學(xué)習(xí)筆記

1、什么是面向?qū)ο蟆?/h3>

類是抽象的,不具體的。就像有些東西可以歸為一類,比如說(shuō)狗,貓,豬。它們都是動(dòng)物,我們就可以歸為一類。而貓,狗就是動(dòng)物類中的一個(gè)對(duì)象。

2、什么是類;

把數(shù)據(jù)及對(duì)數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存的整體——對(duì)象。對(duì)同類對(duì)象抽象出其共性,形成類。類中的大多數(shù)數(shù)據(jù),只能用本類的方法進(jìn)行處理。類通過(guò)一個(gè)簡(jiǎn)單的外部接口與外界發(fā)生關(guān)系,對(duì)象與對(duì)象之間通過(guò)消息進(jìn)行通信。程序流程由用戶在使用中決定。

3、如何定義一個(gè)類;

聲明類的目的,告訴系統(tǒng)類所有包含的屬性和方法。

4、類中可以定義兩種方法;

(1)、“-” 號(hào)方法 獨(dú)享方法:

? ? a、可以直接訪問(wèn)對(duì)象的屬性

? ? b、必須使用對(duì)象調(diào)用

? ? c、可以直接調(diào)用其他的對(duì)象方法

(2)、+號(hào)方法 類方法

? ? 不可直接訪問(wèn)對(duì)象屬性

? ? 必須使用類調(diào)用

? ?不可以直接調(diào)用對(duì)象方法

5、封裝;

setter方法

(1)、一定是獨(dú)享方法

(2)、一定沒有返回值

(3)、方法名一定是以set開頭后面跟上名稱去掉下劃線首字母大寫

(4)、有參數(shù)類型與屬性相同

getter方法

(1)、一定是對(duì)象方法

(2)、一定沒有返回值

(3)、方法名是屬性名去掉下劃線 沒有參數(shù)

注意:

(1)如果某一屬性只提供getter方法沒有提供setter方法我們稱之為只讀屬性反之稱為只寫屬性,setter、getter方法都有稱為可讀可寫屬性

(2)、setter方法另外一個(gè)好處就是可以監(jiān)聽屬性的變化

點(diǎn)語(yǔ)法;提供setter、getter方法后訪問(wèn)屬性可以用點(diǎn)語(yǔ)法方式訪問(wèn)屬性。

點(diǎn)語(yǔ)法的注意點(diǎn):用于給成員變量賦值,如果不是給成員變量賦值不建議用點(diǎn)語(yǔ)法

6、self關(guān)鍵字

self不能離開類;

(回顧枚舉的創(chuàng)建)typedef ?enum?{? ?}

self相當(dāng)于類方法中的類,但是 self不只能調(diào)用類方法,也可以調(diào)用對(duì)象方法;如果self在對(duì)象方法中就代表self相當(dāng)于調(diào)用當(dāng)前的那個(gè)對(duì)象,如果self在類方法中,那么代表調(diào)用當(dāng)前類方法的那個(gè)類

總結(jié):只要關(guān)注self在哪一種方法中;如果在類方法中就代表當(dāng)前類;如果在對(duì)象方法中就代表當(dāng)前調(diào)用該方法的對(duì)象。

注意:self會(huì)自動(dòng)區(qū)分類方法和對(duì)象方法,如果在類方法中用self調(diào)用對(duì)象方法會(huì)報(bào)錯(cuò):如、

+(void)corfomeWith

{

[self closeFlshlight ];

}

+(void)closeFlshlight

{

[self openFlshlight?]

} ? ? ? ? 會(huì)報(bào)錯(cuò)。

self使用場(chǎng)景:

可以用于在對(duì)象方法之間相互調(diào)用;

可以用于區(qū)分成員變量與局部變量同名的情況

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容