一. 類方法和物件方法的簡單區別
物件方法
以-號開頭
裡面可以使用成員變數
用物件來呼叫
物件方法可以呼叫類方法和物件方法
類方法以+號開頭
不可以使用成員變數
類名來呼叫
類方法可以呼叫類方法(除自己外)
可以作為工具方法
區分同名的物件方法與類方法
根據方法前面的識別符號。—物件 + 類
使用場景:
盡量使用類方法(類方法可以節省記憶體空間,提高效率)
當有成員變數時,不能使用類方法
小結: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 行...