iOS開發——語法篇OC篇&靜態方法與實例方法


靜態方法與實例方法

方法是類的行為,寫在接口和實現兩個文件中。在接口部分聲明方法,在實現部分實現方法。


1、類方法與實例方法
Objective-C中的類可以聲明兩種類型的方法:實例方法和類方法。實例方法就是一個方法,它在類的一個具體實例的范圍內執行。也就是說,在你調用一個實例方法前,你必須首先創建類的一個實例。而類方法,比較起來,也就是說,不需要你創建一個實例。
+表示類方法,就是類調用方法,不依賴與任何對象的方法,類似於c語言的static關鍵字 static函數。-表示是實例(對象)方法,只能是對象可調用,依賴與任何對象的方法。
總結一下幾點:
(1)類(static)方法(便利構造器)
a. 類方法的調用
[類名稱 類方法名稱];
這里需要注意:

  • 1、類方法可以調用類方法。
  • 2、類方法不可以調用實例方法,但是類方法可以通過創建對象來訪問實例方法。
  • 3、類方法不可以使用實例變量。類方法可以使用self,因為self不是實例變量。
  • 4、類方法作為消息,可以被發送到類或者對象里面去(實際上,就是可以通過類或者對象調用類方法的意思)。

 

(2)實例方法
a.實例方法的調用
首先需要實例化該類
例如:Human *man = [Human alloc] init];
[類的實例 

實例方法名稱];
例如:[man showSex];   
注意:此處實例化該類時,調用了該類的構造函數init,並且該類的構造函數調用[super init]的返回值不等於該類的self。
定義子類的實例
Woman *wife = [Woman alloc] init];
此處實例化該類時,調用了該類的構造函數init,並且該類的構造函數調用[super init]的返回值 等於該類的self。
 

2、單例模式
Singleton模式,即單例模式。顧名思義,主要用於做應用程序的資源共享控制。實質為,單例是在程序聲明周期里有且僅有被實例化過一次的類。為確保 實例化的唯一,利用類的類(static)方法來生成和訪問對象。至此,我們可以在程序中任何地方訪問類的單例對象,因為只實例化唯一的一次,所以,並不 用 alloc、init、autorelease初始化方法。
單例設計模式的要點:
  • (1) 某個類只能有一個實例。  
  • (2)他必須自行創建這個對象  
  • (3)必須自行向整個系統提供這個實例;
  • (4)這個方法必須是一個靜態類;
.m文件代碼(記住)
復制代碼
1 @implementation Singleton
2 static Singleton *st;
3 +(Singleton*) instance{//可用id代替返回可用的指針對象 instance是方法名
4 //靜態變量,生命周期是整個程序,在下一次該函數調用時仍可使用 。
    if(st==nil ) {//指針為空就創建
         st = [[Singleton alloc] init];
5 //指針st指向單例模式 Singleton
6       }
7     return st;//不是空就繼續使用
8 }
9 @end
復制代碼
注意:所謂單例,即我們自己創建一個單例類,該類只能生成唯一的對象,為了防止該對象被復制(copy)或者retain 和 release 等操作,我們必須在所創建的單例的實現文件( .m 文件)中將父類的這些方法給覆蓋,該目的是為了保證單例模式的一個嚴謹性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM