OC 學習 類方法 例項方法

2021-06-19 16:24:26 字數 1513 閱讀 4890

方法是類的行為,寫在介面和實現兩個檔案中。在介面部分宣告方法,在實現部分實現方法。

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 可以直接使用本類類...