小糖出品 方法的定義與實現

2021-07-02 22:48:38 字數 1862 閱讀 8665

什麼是方法呢?下面是小糖從某書上看到的關於方法的解釋:方法是類或物件的行為特徵的抽象,也是類或物件最重要的組成部分。啥意思呢?小糖按自己的想法解釋一下,我們舉個例子,比如說現在有乙隻貓,那麼我們可以把這只貓看成乙個物件,貓它會幹嘛呢?它會跑吧,也會跳吧,跑和跳其實就可以說是貓這個物件的方法,由貓這個物件呼叫。方法其實就是用來供類或者物件呼叫,用來實現某種功能的。不知道小糖這麼說大家會聯想到什麼?其實,從方法的功能上來講,和c語言中的函式類似,可以說方法就是由函式發展過來的,所以二者具有極高的相似性。

但是,方法和函式還是有區別的。很多人可能會誤認為oc中的方法就是函式,其實不然。首先,方法是oc特有的結構,無法在其他語言(包括c語言)中定義和實現;其次,方法在定義的時候,需要用 + 號和 - 號區別類方法和例項方法,而函式則不需要;再者,函式可以在檔案中的任何地方定義,而方法呢,只能在@inte***ce 和 @end之間定義,在@implementation 和 @end 之間實現;最後,函式可以在任意地方呼叫,並不依賴於物件或類,而方法歸類和物件所有,只能由類或者物件來呼叫,而且例項方法只能由物件呼叫,無法由類呼叫,類方法相反,只能由類呼叫,無法由物件呼叫。

說了這麼多,其實說的都是方法的概念啦。那麼,我們該如何來定義和實現方法呢?現在,我們就來講講方法的定義和實現。

首先,我們講講不帶引數的方法定義。不帶引數的方法定義較為簡單,定義的格式如下:

+ / - (方法的返回型別) 方法名;

這就是定義乙個不帶引數的方法的宣告方式,+號表示類方法,- 號表示例項方法,括號裡面是該方法的返回型別,如果你沒有返回值的話,寫個void就可以,這個和c語言中函式的返回值類似,返回型別後面是該方法名。實現該方法的格式如下:

在@implementation 和 @end之間

+ / - (方法的返回型別) 方法名{

該方法如何實現的**塊

實現部分其實就是將宣告部分的前段複製後,新增花括號,在花括號中間對實現該方法的**寫入就可以。

那麼,如果我們需要給方法裡面傳入引數怎麼辦呢?現在我們來講講帶引數的方法的定義方式。帶引數的方法定義其實和不帶引數的差不多,只是多了一小部分而已。帶引數的方法定義格式如下:

+ / - (方法的返回型別名) 方法名:(引數型別名) 引數名;

需要注意的是,不帶引數的方法,使用的時候直接用方法名即可,而帶引數的方法,方法名後面的冒號(:)也是該方法的一部分,在以後的使用中不能將該冒號漏掉。比如在後面有需要呼叫方法來判斷某個方法是否屬於某乙個類的時候,如果那個方法帶冒號的話,是不能把這個冒號漏掉的。

帶引數的方法的實現格式與不帶引數的方法格式差不多,將定義的格式去掉分號,再加上花括號,即可在花括號裡面實現**了。

那麼假設你有這種需求,你想要在某個方法裡面傳入兩個引數,那樣的話,該如何定義方法呢?按照如下格式即可:

+ / - (方法的返回型別) 方法名:(引數1型別) 引數1名 with***:(引數2型別)引數2名;

實現的格式都差不多,小糖在這就不多說了。

小糖來舉個例子,拿我們剛才說到的貓來講吧。首先,我們定義乙個貓科類,該類中含有跑和吃兩種方法。

@inte***ce cat : nsobject

- (void)run;

- (void)eat;

@end

上面定義了乙個貓類,並且有跑和吃兩個例項方法,接下來我們來說實現部分:

@implementation cat

- (void) run {

nslog(@"跑");

- (void)eat{

nslog(@"吃");

@end

接下來,就只需要在main裡面建立物件來呼叫就可以了,就像下面:

cat * cat = [[cat alloc] init];

[cat run];

[cat eat];



小糖出品 對方法的補充(1)

上篇部落格,小糖說到了方法的定義和實現。這篇部落格小糖對上篇的內容進行一些補充。上篇部落格說到了定義方法時,傳入的引數個數,上篇說到了傳入乙個引數和兩個引數時的宣告格式,現在小糖來說說另一種情況,傳入多個引數的情況。假設你有這種需求,在寫乙個方法的時候需要向方法中傳入許多引數,而且是至少乙個以上的任...

方法的定義與方法的呼叫

定義乙個方法的格式 public static void 方法名稱 方法名稱的命名規則和變數一樣 可以使用小駝峰 方法體 也就是大括號當中可以包含任意語句 注意事項 1 方法定義的先後順序 無所謂 2.方法的定義不能產生巢狀包含關係 3 方法定義好了以後 不會執行的 如果要執行 一定要進行方法的 呼...

方法的定義與使用

一 方法的定義與使用 形參只有值傳遞 以下所有方法在主類中定義,並且在主方法中直接呼叫。1.方法宣告 public static 方法返回值 方法名稱 引數型別 變數 public class fangfatest public static int add int x,int y 2.方法過載 o...