OC基礎 例項變數和成員變數的區別

2021-07-03 07:03:53 字數 1804 閱讀 2858

摘要:

objective

-c  

引入了「例項變數

"的概念,但同時, 也經常出現 「成員變數」的聲音。 到底什麼是例項變數,什麼是成員變數,二者的區別是什麼呢?

在objective-c中,定義乙個類,需要有兩部分: 第一是介面(inte***ce),第二是實現(implementation)。 介面對應介面檔案,而實現對應了實現檔案。 介面檔案包含了類的宣告,成員變數(member variable)和方法(method)。 介面檔案通常是.h
實現檔案通常是.m檔案。  介面中所宣告的方法(method),需要在.m 檔案中,通過x

code 來實現這個方法(method)。

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

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

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

圖中的 」member variable declarations「 ,字面的意思: 」成員變數宣告「。  貌似  中所宣告的變數都為成員變數。 既然如此,例項變數又是什麼意思呢?

既然oc的表達方式是英文, 不妨從英文中查知原本的含義。

類:

class

(description

/template

foran

object

)例項:

instance

(manifestation of a

class

)訊息:

message

(sent to

object

to make it act

)方法:

method

(code invoked

bya

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 應屬於 例項變數。

該文章是本人在查詢問題時得到的文章講解,並非本人原創.

這裡.很感謝原文章作者的解釋.在此表示感謝.

屬性,例項變數和成員變數

synthesize window window 意思是說,window 屬性為 window 例項變數合成訪問器方法。解析 意思是說window屬性生成訪問方法 setwindow方法,而這個方法就是實際變數 window的 的訪問方法,setwindow操作的就是 window這個方法。ps w...

類的成員變數和例項變數

class classout out mem out mem def init self inner mem inner mem self.inner mem self.inner mem self.inner mem self.inner mem self.out mem self.out mem...

OC之成員變數封裝

import inte ce student nsobject set方法 1.作用 提供乙個方法給外界設定成員變數值,可以在方法裡面對引數進行相應過濾 2.命名規範 1 方法名必須以 set開頭 2 set 後面跟上成員變數的名稱,成員變數的首字母必須大寫 3 返回值一定是 void 4 一定要接...