1. 程式人生 > >OC類方法和物件方法對比

OC類方法和物件方法對比

方法
1. 方法的宣告和實現,都必須以+/—開頭
2. +表示類方法(靜態方法)
呼叫方式:[className classMethod];
3. -表示例項方法(動態方法)
呼叫方式:[obj instanceMethod];

區別:
1.類方法可以呼叫類方法
2.類方法不能直接呼叫例項方法和例項變數
3.類方法可以通過建立物件後,訪問例項方法
4例項方法可以呼叫類方法。
-(int)sumOfNum1:(int)a andNum2:(int)b;//宣告
[className sumOfNum1:11 andNum2:11];//呼叫

46.類方法的注意事項:(+方法)


1.類方法只能被向類傳送類訊息才被執行,向例項物件傳送類方法是不能被觸發執行的。
2.在類方法中不能使用類的例項變數。(可以給類方法傳遞一個引數,+(void)run:(int)speed;)
3.類方法不能呼叫自己,避免造成死迴圈;
4.如果我們呼叫一個方法,該方法不需要使用成員變數,那麼我們可以將該方法宣告為類方法。

物件方法中可以呼叫其它物件方法
1.當前物件方法中建立物件(可以是當前類例項物件,也可以是其他類的例項物件),使用新建立的物件呼叫物件方法。
2.可以使用self。
3.物件作為方法的引數傳遞過來,可以使用傳遞過來的物件呼叫方法。

注意
如果沒有在.h檔案中宣告,而是直接在.m檔案直接實現則該方法是私有方法,外部不能被呼叫,私有方法只能被自己呼叫,其子類也不能呼叫。

相關推薦

OC方法物件方法對比

方法 1. 方法的宣告和實現,都必須以+/—開頭 2. +表示類方法(靜態方法) 呼叫方式:[className classMethod]; 3. -表示例項方法(動態方法) 呼叫方式:[obj instanceMethod]; 區別:

IOS之OC入門--方法物件方法

程式碼時錯誤的  主要是為了瞭解類方法和物件方法的使用時注意的一些細節 /* 4.設計一個成績類 * C語言成績(可讀可寫) * OC成績(可讀可寫) * 總分(只讀) * 平局分(只讀) */ # import <Foundation/Founda

黑馬程式設計師-OC-方法物件方法的呼叫

1.類方法 宣告:在.h檔案中宣告,必須以+開頭。 實現:在.m檔案中實現 2.物件方法 宣告:在.h檔案中宣告,必須以-開頭。 實現:在.m檔案中實現 對比: 1)類方法只能類呼叫,物件方法只能物件呼叫 2)類方法與物件方法可以

【Objective-C】05-OC物件方法物件方法的比較

一、類方法 1.1 噹噹前方法中不涉及類的成員變數時,可以把方法宣告成類方法。這樣做的好處是可以不用宣告類的例項物件,減少記憶體空間的佔用,提高執行效率。即類的方法不依賴於物件。 1.2 以加號 + 開頭 1.3 只能由類(名)來呼叫 1.4 類方法中不能訪問類的成員變

java中的物件對比分析

      說到鎖機制,不得不提到Thread執行緒,而又不得不提到synchronized關鍵字,這個單詞的意思是表示“同步”的意思。用它去修飾方法函式的時候,如果有多個執行緒同時呼叫這個方法函式的時候,那麼當一個執行緒獲得鎖的時候,其他的執行緒只

java中synchronized 用在例項方法物件方法上面的區別

https://bijian1013.iteye.com/blog/1836575    在Java中,synchronized 是用來表示同步的,我們可以synchronized 來修飾一個方法。也可以synchronized 來修飾方法裡面的一個語句塊。    

黑馬程式設計師--OC基礎--方法物件方法self的使用

1、類方法 (1)類方法就是一個方法,它的使用不需要使用者去建立一個類的例項進行呼叫而可以直接通過類名對方法進行呼叫。 宣告一個類方法的格式: +(返回值型別) 方法名:(引數1型別)引數1名稱 方法名:(引數2型別)引數2名稱; 例:

物件 - 方法的呼叫

  這個方法呼叫  列印的結果是  1  跟 2  :基本資料型別問題 解:change方法呼叫的時候 傳進去的引數屬於基本資料型別。 change方法在壓站執行的時候 只是重新賦值了  a 跟 b ;main方法執行完change的方法之後

物件鎖,synchronized修飾static方法與非static方法的區別

類鎖和物件鎖,synchronized修飾static方法與非static方法的區別  當synchronized修飾一個static方法時,多執行緒下,獲取的是類鎖(即Class本身,注意:不是例項

Thread的sleep()方法物件的wait()方法都能使執行緒暫停執行,他們有什麼區別?

sleep()方法是執行緒類Thread的靜態方法,呼叫該方法使執行緒暫停執行指定的時間,將CPU讓給其他執行緒,並不釋放所持有的物件鎖,休眠時間結束後執行緒回到就緒狀態。 wait()是Object類的方法,呼叫wait()方法,執行緒釋放所持有的物件鎖,進入等待池中,只

OC 物件的記憶體儲存細節(方法物件方法的呼叫細節)

// //  main.m //  第二個OC類 #import <Foundation/Foundation.h> /* 定義一個類:person 屬性:age hei

自己試驗在spring的環繞通知裡獲取目標物件目標方法的引數名,用於根據自定義註解判斷訪問許可權,有沒有更好的辦法,高手指點一下

public Object doInBusiness(ProceedingJoinPoint pjp) throws Throwable{   Object[] args = pjp.getArgs();   Class[] argsClass = new Class[ar

OC方法成員方法

今天中午,偶然間發現nsobject的description的函式為類函式,我想覆蓋這個函式,自定義類的描述,但要訪問到成員變數,必須是成員函式(這個符合類函式的特性,類名直接呼叫),那麼問題來了,我能直接覆蓋這個函式麼,需要其他關鍵字麼? 研究了一箇中午後,得出了結論:能

黑馬程式設計師 oc隨記 方法物件方法

------- android培訓、java培訓、ios培訓、期待與您交流! ---------- 類方法與物件方法相比較,最根本的好處在於節省記憶體空間。 物件方法在執行時是先從記憶體棧區訪問記憶體堆區的地址,再從記憶體堆區尋找方法位於記憶體程式碼區的地址,最終返回值。

C#基礎視頻教程3.1 常見控件使用方法

pro visual 最大 check 註意 研究 技術分享 鼠標 入門 可以從左側的工具箱中找到常見的控件(你要在Form1這種窗體上) ?為了方便你也可以把工具箱整個拖過去,這樣從上到下控件都給你排好了 ?對於按鈕來說,最常見的就是他的背景顏

Python的程序結構(2) -> 方法/Method -> 實例方法、私有方法抽象方法

模塊 魔術 程序 技術 pytho 將不 abs 保護 error 類實例方法、私有方法和抽象方法 Python中最常用的就是類實例方法,類似於屬性中的類實例屬性,同時,也存在與私有屬性類似方法,即私有方法,下面介紹這兩種常見的方法,以及一種特殊意義的類實例方法 -- 抽

Python的程序結構(2) -> 方法/Method -> 靜態方法方法屬性方法

程序 屬性的方法 屬性方法 cls ati instance 而在 gpo int 靜態方法、類方法和屬性方法 在 Python 中有三種常用的方法裝飾器(參考裝飾器部分內容),可以使普通的類實例方法變成帶有特殊功能的方法,分別是靜態方法、類方法和屬性方法。 靜態方

Python中的實例方法方法、靜態方法普通方法

turn 屬性和方法 靜態方法 一個 def col == pre 類屬性  為了辨析它們的差別,寫了如下代碼:  1 class C: 2 3 def self_method(self, a): 4 return a 5 6

一文詳解python的方法,普通方法靜態方法

http 接下來 方法調用 pytho 類和實例 訪問類 靜態 都是 com   首先形式上的區別,實例方法隱含的參數為類實例self,而類方法隱含的參數為類本身cls。 靜態方法無隱含參數,主要為了類實例也可以直接調用靜態方法。   所以邏輯上,類方法被類調用,實例方法

線程Thread的start()方法run()方法

java 多線程 一、初識 java的線程是通過java.lang.Thread類來實現的。VM啟動時會有一個由主方法所定義的線程。可以通過創建Thread的實例來創建新的線程。每個線程都是通過某個特定Thread對象所對應的方法run()來完成其操作的,方法run()稱為線程體。通過調用Thread