IOS開發-Objective-C物件導向編程基礎知識

來源:互聯網
上載者:User

標籤:

1)Objective-C的類定義包含兩個部分,一是類介面的聲明,二是類方法的實現。

2)所有的 Objective-C的所有編譯指示都以@打頭。

a)類介面以@interface開始以@end結束。

b)類的實現以@implementation開始以@end結束。

c)每個實現檔案必須包含它自己對應的介面檔案,這樣實現檔案中就可以安全的將 父類名刪除,將類的instance變數聲明刪除,只關注類的方法的實現;可以這樣做的原因是我們沒有必要重複介面檔案中同樣的聲明。

d)不要將源檔案中的函數參數命名成與該類成員變數同名的變數,否則函數的參數名會覆蓋類的成員變數,導致在該函數的實現中看不到類定義中的成員變數。

如在標頭檔中一個類介面聲明如下:

@interface Circle:NSObject

{

ShapeRect bounds;

ShapeColor fillColor;

}

- (void) SetFillColor: (ShapeColor) fillColor;

- (void) SetBounds: (ShapeRect) bounds;

- (void) draw;

@end //Circle

我們源檔案中類的實現如下:

@implementation Circle

- (void) SetFillColor: (ShapeColor)c

{

fillColor = c;

}

- (void) SetBounds: (ShapeRect)b

{

bounds = b;

}

- (void) draw

{

NSLog(@"drawing a circle at (%d,%d,%d,%d) in %@",bounds.x,bounds.y,bounds.width,bounds.hight,colorName(fillColor));

}

@end //circle

3)id 比較獨特,在Objective-C中它是一種泛型,該類型的變數可以儲存指向任何一個對象的指標。

4)向一個對象發送一個訊息,那麼該對象又是如何去執行該訊息所對應的代碼呢?

每個對象都包含一個指向其類的指標,而類也包含一個指標該指標指向該類的代碼地區。

這樣當對象收到一個訊息,對象通過其包含的指向找到其所屬的類對象,通過類對象的代碼區指標又可以找到與訊息對應的函數。

每個對象都包含一個名叫isa的指標,就是該指標指向類。

5)Objective-C中的基本術語:

:類是一種結構,它用於表示一個對象的類型。對象通過isa指標來引用類來獲得與本身有關的所有資訊,尤其是像4)中所說的如何執行每種操作的代碼。

對象:也是一種結構,該結構主要包含成員變數的值和指向其類的隱藏指標(isa);同一類的所有象共用一份代碼。

執行個體:是“對象”的另外一種稱呼。

訊息:是對象可以執行的操作,用於通知對象去做什麼,一個對象能響應哪些訊息可以從介面定義中知道。

方法:為響應訊息而啟動並執行代碼。根據對象的類,訊息可以調用不同的方法。

介面:是對對象的類應該提供的特性的描述。相當於是告訴其他使用該類的客戶,該類的對象可以接收哪幾個訊息。與上面說的“訊息”術語一致。

實現:是使介面正常工作的代碼,也就是使對象訊息正常工作的代碼。與上面的“實現”術語一致。

6)有些方法名後有冒號,有些沒有呢?如何判斷什麼時候有,什麼時候沒有?

如果方法使用參數,則需要冒號;否則不需要冒號。如上面的代碼片斷。

IOS開發-Objective-C物件導向編程基礎知識

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.