方法是類的行為,寫在介面和實現兩個檔案中。在介面部分宣告方法,在實現部分實現方法。
1、類方法與例項方法
objective-c中的類可以宣告兩種型別的方法:例項方法和類方法。例項方法就是乙個方法,它在類的乙個具體例項的範圍內執行。也就是說,在你呼叫乙個例項方法前,你必須首先建立類的乙個例項。而類方法,比較起來,也就是說,不需要你建立乙個例項。
+表示類方法,就是類呼叫方法,不依賴與任何物件的方法,類似於
c語言的static關鍵字 static函式。-表示是例項(物件)方法,只能是物件可呼叫,依賴與任何物件的方法。
總結一下幾點:
(1)類(static)方法(便利構造器)
a. 類方法的呼叫
[類名稱 類方法名稱];
這裡需要注意:
1、類方法可以呼叫類方法。
2、類方法不可以呼叫例項方法,但是類方法可以通過建立物件來訪問例項方法。
3、類方法不可以使用例項變數。類方法可以使用self,因為self不是例項變數。
4、類方法作為訊息,可以被傳送到類或者物件裡面去(實際上,就是可以通過類或者物件呼叫類方法的意思)。
(2)例項方法
a.例項方法的呼叫
首先需要例項化該類
例如:human *man = [human alloc] init];
[類的例項
例項方法名稱];
例如:[man show***];
注意:此處例項化該類時,呼叫了該類的建構函式init,並且該類的構造函式呼叫[super init]的返回值不等於該類的self。
定義子類的例項
woman *wife = [woman alloc] init];
此處例項化該類時,呼叫了該類的建構函式init,並且該類的構造函式呼叫[super init]的返回值 等於該類的self。
2、單例模式
singleton模式,即單例模式。顧名思義,主要用於做應用程式的資源共享控制。實質為,單例是在程式宣告週期裡有且僅有被例項化過一次的類。為確保例項化的唯一,利用類的類(static)方法來生成和訪問物件。至此,我們可以在程式中任何地方訪問類的單例物件,因為只例項化唯一的一次,所以,並不用 alloc、init、autorelease初始化方法。
單例設計模式的要點:
(1) 某個類只能有乙個例項。
(2)他必須自行建立這個物件
(3)必須自行向整個系統提供這個例項;
(4)這個方法必須是乙個靜態類;
.m檔案**(記住)
@implementation singleton
static singleton *st;
+(singleton*) instance
return st;//不是空就繼續使用
}@end
注意:所謂單例,即我們自己建立乙個單例類,該類只能生成唯一的物件,為了防止該物件被複製(copy)或者retain 和 release 等操作,我們必須在所建立的單例的實現檔案( .m 檔案)中將父類的這些方法給覆蓋,該目的是為了保證單例模式的乙個嚴謹性。
OC中類方法的使用例項
import 車輛類的宣告 inte ce car nsobject void setspeed int speed int getspeed 比較兩輛車字速度的類方法,如果acar的速度比bcar快,那麼返回yes,否則返回no bool isfaster car acar thanthe car...
例項方法 類方法
1.例項方法 動態方法 a 識別符號 b 呼叫方式 例項物件 函式 c 例項方法在堆疊上。2.靜態方法 類方法 a 識別符號 b 呼叫方式 類 函式 c 靜態方法在堆上分配記憶體。3.靜態方法和例項方法的區分 a 靜態方法常駐記憶體,例項方法不是,所以靜態方法效率高但佔記憶體。事實上,方法都是一樣的...
OC 類方法和物件方法
1 類方法以 號開頭,只能通過類名呼叫,可以和物件方法同名。類方法的優點 1 節省記憶體空間 2 提高了效率 3 作為工具方法 禁忌 1 在類方法中使用了成員變數 如果我們呼叫乙個方法,該方法中不需要使用成員變數,那麼我們可以將該方法宣告為類方法,在類方法中可以呼叫其他類方法 1 可以直接使用本類類...