黑馬程式設計師 OC中的類方法和物件方法

2021-06-26 14:29:49 字數 1431 閱讀 8779

一. 類方法和物件方法的簡單區別

物件方法

以-號開頭

裡面可以使用成員變數

用物件來呼叫

物件方法可以呼叫類方法和物件方法

類方法以+號開頭

不可以使用成員變數

類名來呼叫

類方法可以呼叫類方法(除自己外)

可以作為工具方法

區分同名的物件方法與類方法

根據方法前面的識別符號。—物件    + 類

使用場景:

盡量使用類方法(類方法可以節省記憶體空間,提高效率)

當有成員變數時,不能使用類方法

小結:1.類方法呼叫自己的類方法可以

2.類方法呼叫自己的物件方法不可以

3.物件方法呼叫自己的類方法可以

4.物件方法呼叫自己的物件方法可以

// 類方法在呼叫類方法的時候,不能自己調自己,會造成死迴圈

//   同名的物件方法與類方法是兩個不同的方法

編譯時常見的錯誤原因:   

//  unrecognized selector sent to instance 0x100201c20 出現原因:物件沒有找到要呼叫的方法

//  unrecognized selector sent to class 0x1000011d8'出現原因:類沒有找到要呼叫的方法

二.    匿名物件

cat *cat1 = [cat new];  //實名物件,用同類的指標儲存了物件的位址

[cat new];  //匿名物件,只是通過new建立了乙個物件出來

cat1->_name = @"加菲貓";

// [cat new]->_name = @"好貓";

[[cat new] lookmycat]; //列印的是空,因為每new一次建立乙個新的物件

//匿名物件的作用

//1.當呼叫使用次數很少的方法的時候,就直接使用匿名物件呼叫。

[[cat new] lookmycat];

//2.匿名物件可以作為引數傳遞,當不需要給傳遞的物件的成員變數賦值的時候,就使用匿名物件作為引數傳遞

person *person1 = [person new];

[person1 feedcat:[cat new]];

//作用:節省**,節省記憶體

三.    組合模式:乙個物件作為另乙個物件的成員變數

優點:節省了**,使兩個類產生了關係

缺點:依賴性太高(耦合性太高)

場合:當可以用「誰屬於誰」這種方式來表述的時候,就可以用組合模式

#import

#import "iphone.h"

@inte***cegirl :

nsobject

四. 補充

利用xcode右側的**塊兒快速生成**

方法:< + # +代替的部分 + # + >這樣這一部分就會變成可編輯的

黑馬程式設計師 OC 類和物件

類名 car 屬性 輪胎個數 時速 行為 跑 因為使用了nsobject import 完整地寫乙個函式 函式的宣告和實現 完整的寫乙個類 類的宣告和實現 類的宣告 宣告物件的屬性 行為 nsobject 的目的是 讓car這個類具備建立物件的能力 inte ce car nsobject 用來宣告...

黑馬程式設計師 OC 類和物件

一.物件導向和面向過程的思想 對比 oc是物件導向的,c是面向過程的。物件導向和面向過程只是解決問題的兩種不同思想 1 以用電腦聽歌為例子 a 面向過程 開啟電腦 關閉電腦 b 物件導向 不是相親的 物件 電腦 開機 關機 區別分析 面向過程關注的是解決問題需要哪些步驟 物件導向關注的是解決問題需要...

黑馬程式設計師 OC之類和物件

類 類是抽象的 物件 物件是具體 ios培訓 android培訓 期待與您交流!1 設計乙個類的步驟 1 類名,2 屬性,3 行為 功能 1 擁有相同屬性和行為的類都可以抽象出乙個類 2 設計乙個植物大戰殭屍中的殭屍 1 類名 zoombie 2 屬性 life speed gongjili 3 行...