Objective-C物件導向初體驗

來源:互聯網
上載者:User

Objective-C物件導向初體驗是本文要介紹的內容,主要是來瞭解物件導向語言Objective-C,這裡沒有細節的文法,大都是關於Objective-C物件導向概念理解的東西,來看詳細內容講解。

1、前言

語言其本質上都是某種抽象,不管是現實生活中人們交流的語言,還是電腦語言.

2、對象

在Objective-C中,所有的對象都有一個共同的特徵,就是每一個對象都包含一個isa指標.這個指標指向當前對象所屬的類.

Objective-C中存在一個名為id的類型,這個和上面所說這個isa指標有一定的聯絡.

C代碼 

 
  1. typedef struct objc_object {     
  2. Class isa;     
  3. } *id;    
  4. typedef struct Objective-C_object {  
  5. Class isa;  
  6. } *id;   

其中Class類型為指向objc_class結構體的指標類型.

這些對象在記憶體中都是由其地址唯一標示,所有的對象都是id類型的.

我們繼續來將這個isa指標,通過isa指標我們可以在啟動並執行時候知道當前對象是屬於什麼Class的,

對象的記憶體管理:

在Objective-C中,存在兩種記憶體管理的方式

一種是基於引用技術的,在這種情況下,程式員需要時刻注意記憶體的申請和釋放,以免發生記憶體泄露.

還有一種是記憶體回收,學過Java的同學都知道java的記憶體回收,使得程式員從繁雜容易出錯的記憶體釋放工作中得到解放.

目前在Pihone的開發環境中不支援記憶體回收的方式.

3、訊息

訊息這個概念是比較特殊的,在其他的一般的電腦語言中都叫做方法調用或者函數調用,但在Objective-C中,很形象的叫做訊息,在文法上也和別的語言的函數或者方法差別很大.

在我們現實生活中,人和人進行溝通就是通過不同形式的訊息進行的,比如說郵件,首先得有接受者,然後將訊息內容通過郵件發送給接受者.

如果將上面的情景用Objective-C的訊息文法描述出來差不多是這樣的

[郵件接受者  郵件:郵件內容]

我們將郵件接受者稱為receiver,郵件:郵件內容的整體稱作message

 
  1. [Receiver message] 

如果將message再分解,我們可以寫成下面的

 
  1. [Receiver selector:argument] 

這種情景在別的語言中就是調用recevier這個對象的某個方法

這裡的selector為方法名,他在訊息發送的時候,會”選擇”一個方法的實現來運行,所以這裡的方法名被稱作為選取器

而且這裡的selector也是Objective-C實現多態的關鍵所在.

4、類

在Objective-C中,類只支援單繼承.

在程式啟動並執行時候,編譯器會自動根據你的類定義產生一個”類對象”,這個”類對象”是類執行個體對象的原型,它知道如何去建立屬於這個類的執行個體對象.

執行個體對象擁有各自變數屬性,而方法都是共用的.

“類對象”的type都為Class,上面有提到過Class類型為指向objc_class結構體的指標類型.

在Objective_C中NSObject類是一個根類。

小結: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.