iT邦幫忙

0

iOS APP 開發 OC 第六天, 方法的聲明實現和調用

tags: OC 30 day


類事物不僅具有相同的特徵還具有相同的行為。
行為就是一個功能,C語言中使用函數來表示一個功能。
OC的類具有的行為,我們使用方法來表示..

方法和函數都代表一個功能。

1. 聲明

a. 位置: 在@interface的大括弧外面
b. 語法:

    - (返回值類型)方法名稱;
    - (void)run;
    表示聲明一個唔返回值並且無參數的方法,方法名稱叫run。

2. 實現

a. 位置:在implementation之中實現。
b. 實現的語法:
將方法的聲明拷貝到@implemention之中,去掉分號。追加大括號一對,將方法實現的代碼寫在大括弧之中。

3. 調用

a. 方法是無法直接調用的,因為類是不能直接使用的,必須要先創建對象。那麼這個對象中就有類中的屬性和方法了,就可以跳用對象的方法了。
b. 調用對象的方法:

[對象名 方法名]

4. 帶一個參數的方法

  1. 聲明
    a. 位置:在@interface的大括弧的外面。
    b. 語法:
-(返回值類型)方法名稱:(參數類型)形參名稱;
-(void)eat:(NSString *)foodName;

定義了一個方法,這個方法沒有返回值。
這個方法的名字叫做eat:
這個方法有一個參數,類型是NSString *類型的 參數名稱叫做foodName
2. 實現
a. 位置:在implementation之中實現。
b. 實現的語法:
將方法的聲明拷貝到@implemention之中,去掉分號。追加大括號一對,將方法實現的代碼寫在大括弧之中。
3. 調用
a. 方法是無法直接調用的,因為類是不能直接使用的,必須要先創建對象。那麼這個對象中就有類中的屬性和方法了,就可以跳用對象的方法了。
b. 調用的語法:

 [對象名 方法名:實參];

方法頭中的數據類型都要用一個小括弧刮起來。

- (返回值類型)方法名稱:(參數類型)參數名稱;

5. 帶多個參數的方法

  1. 聲明
    a. 位置:在@interface的大括弧的外面。
    b. 語法:
-(返回值類型)方法名稱:(參數類型)形參名稱1 :(參數類型)形參名稱2 :(參數類型)形參名稱3;
-(int)sum:(int)num1 :(int)num2;

表示聲明了一個方法,這個方法的反回值是int類型的。
這個方法的名字叫做sum: :
這個方法有兩個參數,類型都是int類型的 參數名稱叫做 num1 num2
2. 實現
a. 位置:在implementation之中實現。
b. 實現的語法:
將方法的聲明拷貝到@implemention之中,去掉分號。追加大括號一對,將方法實現的代碼寫在大括弧之中。
3. 調用
a. 方法是無法直接調用的,因為類是不能直接使用的,必須要先創建對象。那麼這個對象中就有類中的屬性和方法了,就可以跳用對象的方法了。
b. 調用帶多個參數的語法:

 [對象名 方法名:實參1 :實參2 :實參3];

方法頭中的數據類型都要用一個小括弧刮起來。

- (返回值類型)方法名稱:(參數類型)參數名稱;

6. 帶參數的方法聲明的規範:

  1. 如果方法只有一個參數,規範要求最好這個方法的名字叫做 xxxWith: 這樣寫的話,可以提高程式碼的可讀性。
  2. 如果方法有多個參數,建議這個方法命名:
    方法名With:(參數類型)參數名稱 and:(參數類型)參數名稱 and:(參數類型)參數名稱;

2 則留言

0
ytyubox
iT邦新手 5 級 ‧ 2020-12-29 12:45:35

Objective-C 的 method 語法是不可以在 global 實作,必須要 Objective-C的 class 語法區間

我覺得當參數一多的時候可以用換行的方式排版,Objective-C的排版在 method 部分友善很多

Alvin iT邦新手 5 級 ‧ 2020-12-30 09:33:55 檢舉
  1. 定義位置:OC的方法聲明只能寫在@interface 的大括弧外面,實現只能寫在@implementation之中,相較C語言函數除了在函數的內部和@interface大括弧之中,其他的地方都是可以寫的。
  2. 調用方式:C語言函數可以直接調用。但是OC必須先創建對象,透過對象調用
ytyubox iT邦新手 5 級 ‧ 2020-12-30 18:14:14 檢舉
  1. 你有想過 + method 嗎?
0
ytyubox
iT邦新手 5 級 ‧ 2020-12-29 12:45:36

Objective-C 的 method 語法是不可以在 global 實作,必須要 Objective-C的 class 語法區間

我覺得當參數一多的時候可以用換行的方式排版,Objective-C的排版在 method 部分友善很多

我要留言

立即登入留言