Objective-C 基本文法:執行個體變數與成員變數的區別

來源:互聯網
上載者:User

標籤:

在Objective-C中,定義一個類,需要有兩部分: 第一是介面(interface),第二是實現(implementation)。 介面對應介面檔案,而實現對應了實現檔案。 介面檔案包含了類的聲明,成員變數(member variable)和方法(method)。 介面檔案通常是.h

 實現檔案通常是.m檔案。  介面中所聲明的方法(method),需要在.m 檔案中,通過xcode 來實現這個方法(method)。

今天查看apple 的官方文檔時(如下)。https://developer.apple.com/library/mac/referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/index.html

 發現了一個新的名詞: 成員變數(member variable)。 之所以感到新奇,因為之前 都管它叫 執行個體變數(instance variable)。 記得,初次接觸Objective-C時,看到執行個體變數這一名詞,覺得很新奇。 也試圖把 執行個體變數 與 成員變數,做了一番對比,研究其不同之處。 從以下這個張圖, 可以斷定,我之前所看到的執行個體變數,本質上說,就是成員變數。 對於iOS 初學者來說, 一個新奇的名詞,很容易讓人產生太多的想法。 

如果你之前接觸過C++, 對成員變數(member varialbe) ,肯定不陌生。  今天,你又看到了這個熟悉的叫法, 定會感到 Objective-C  沒想象中的那麼難。

行文至此,耳邊又響起了那個廣告語 : 還是原來的配方,還是熟悉的味道。 呵:)

  圖中的 ”Member Variable declarations“ ,字面的意思: ”成員變數聲明“。  貌似  {   } 中所聲明的變數都為成員變數。 既然如此,執行個體變數又是什麼意思呢?既然OC的表達方式是英文, 不妨從英文中查知原本的含義。

類:     Class (description/template for an object)
執行個體: Instance (manifestation of a class)
訊息: Message (sent to object to make it act)
方法: Method (code invoked by a Message)
執行個體變數: Instance Variable (object-specific storage)
超類/子類: Superclass/Subclass (Inheritance)
協議:  Protocol (non-class-specific methods)

從給出的英文說明,可以看出: 執行個體(Instance) 是針對 類(class)而言的。  執行個體是指類的聲明; 由此推理, 執行個體變數(Instance Variable) 是指 由類聲明的對象。 
嚴格說來, 中的  int  count;  是一個成員變數。  而 NSString * name;  是一個執行個體變數。 至於 id data 應該屬於成員變數還是執行個體變數呢?  因為 id 是 OC特有的類型。從本質上講, id 等同於 (void *)。 
 所以 id data 應屬於 執行個體變數。

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.