Objective C 類的定義

2021-06-08 09:33:07 字數 3339 閱讀 5951

這次,我們介紹objective-c是如何定義乙個完整的類。定義乙個類都包括哪些部分,為了簡單明瞭,更加直接,列舉了乙個20多行**的小例子。

那麼,讓我們先看下面這個簡單的例子:

1

2

3

4

5

6

7

8

9

10

11

#import //引用foundation庫標頭檔案

@inte***cefraction:nsobject

-(void) print;//宣告列印方法

-(void) setnumerator:(int) n;//宣告設定numerator引數的帶1個引數的方法

-(void) setdenominator:(int) d;//宣告設定denominator引數的帶1個引數的方法

@end

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

@implementationfraction

-(void) print//定義列印方法

-(void) setnumerator: (int) n//定義帶引數的setnumerator方法

-(void)setdenominator: (int) d//定義帶引數的setdenominator方法

@end

1

2

3

4

5

6

7

8

9

10

11

12

13

14

intmain(intargc,char*argv)

上述程式執行的結果是:

the value of myfraction is:

1/3從上述**可以看到,程式在邏輯上分為3個部分:

@inte***ce部分用於描述類、類的資料成分以及類的方法;而@implementation部分包括實現這些方法的實際**。最後,program部分包含實現程式預期目的的程式**。

下面展開來討論:

定義新類時,必須做一些事情。首先,要通知objective-c編譯器這個類來自何處。就是說,必須命名它的父類。其次,必須確定這個類物件要儲存的資料的型別。就是說,必須描述類成員將包含的資料。我們把這些成員叫做例項變數。最後,還必須定義在處理該類的物件時將要用到的各種操作或方法的型別。這些工作都在程式中名為@inte***ce的特殊部分內完成。該部分的一般格式類似於:

1

2

3

4

5

6

@inte***cenewclassname:parentclassname

methoddeclarations;

@end

@implementation部分包含宣告在@inte***ce部分的方法的實際**。就像術語指出的那樣,在@inte***ce部分宣告方法並在@implementation部分定義它們(就是說給出實際的**)。

@implementation部分的一般格式如下:

1

2

3

@implementationnewclassname

methoddefinitions;

@end

newclassname表示的名稱與@inte***ce部分的類名相同。可以在父類的名稱之後使用冒號,如同在@inte***ce部分使用的冒號一樣:

@implementation fraction:nsobject

然而,它是可選的而且通常並不這麼做。

@implementation部分中的methoddefinitions部分包含在@inte***ce部分指定的每個方法的**。與@inte***ce部分類似,每種方法的定義首先指定方法(類或例項)型別、返回型別、引數及其型別。然而,我們並沒有使用分號來結束該行,而是將之後的方法**放入一對花括號中。

program部分包含解決特定問題的**,如果有必要,它可以跨越多個檔案。在這些檔案中,必須在其中乙個地方有乙個名為main的例程。通常情況下,這是程式開始執行的地方。

Objective C 定義的型別

以下列出的是objective c內建的型別集合 型別定義 id物件的引用 指向其資料結構的指標 class類物件的引用 指向其資料結構的指標 sel選標 編譯器分配用來區分方法名的編碼 imp指向方法實現的指標,該實現返回id bool布林值,yes or no nil空的物件指標,id 0 ni...

Objective C 類的擴充套件

category,分類或類目。主要作用是為沒有原始碼的類加入方法。通過category加入的方法會成為原類的一部分。從而達到擴充套件乙個類的功能。定義category過程 新建 件 選擇objective c category模板 填寫類名和分類名 h 件加入 法宣告 m加入 法實現 categor...

在objective c中列印自定義類

nsstring description 是基類nsobject 所帶的方法,在自定義的子類中,我們可以過載該方法來實現列印自定義類。首先,我們可以自定義乙個person類。inte ce person nsobject end implementation person id init retur...