oc(iOS)中的類屬性 類的成員 /類的字段、屬性 定義和使用方法(類似C#、java的類的靜態(tài)成員變量)

最近一個項(xiàng)目中需要使用到類似 C#、java 那樣的類的字段、類的成員變量。

形式如下:

Person.name = "HaHa";

string? aName = Person.name;



首先列一下此文我們要說的綱目,然后逐個解釋:

1. 類的字段/屬性 簡單定義

2. 結(jié)合類方法與對象方法,解釋 類的字段/屬性 使用(調(diào)用)形式【會對比 實(shí)例方法(對象方法/減號方法)和 實(shí)例變量解釋】


接下來進(jìn)入正文,一一解釋。


一、類的字段/屬性 簡單定義

類的成員屬性是定義在類的內(nèi)部、方法外部。如下 Person 類的 .m 文件:

staticNSString *addr;就是類的成員變量。



要想實(shí)現(xiàn)想C#那樣的調(diào)用方式,只需要仿照對象的成員變量的寫法,在 .h 中定義一個類方法setter方法和一個類方法getter方法,然后在 .m 中實(shí)現(xiàn)即可。如上圖實(shí)現(xiàn)方式。


對比 減號的對象方法,這種? 加號的類方法的 "定義形式" 是不是與之非常類似!


二、外部調(diào)用方式 - 類似 C# 的調(diào)用方式,直接 “類名.屬性名” 即可。如下圖:


??????? 這樣的? "調(diào)用形式"? 是不是與 減號對象方法的getter、setter 極其類似!


只是,對于 C# 或 java 中的static變量,在類內(nèi)部定義時不需要同時寫 +getter? 、 +setter? 方法;在外部調(diào)用時只需要類名點(diǎn)變量名?? Person.name = ””;

而 oc 中除了定義static的變量之外,還需要手動寫? +getter、+setter 并實(shí)現(xiàn),才能在外部使用時 Person.name = @”HaHa”;


個人覺得,這是因?yàn)椋珻# 有命名空間的概念,java 有包的概念,都能通過命名空間的路徑找到唯一的目標(biāo)。(Swift中也增加了命名空間或者名稱空間 nameSpace 的概念)


OK,關(guān)于 oc 中仿照 C# 靜態(tài)變量的定義和使用就介紹完畢,希望能幫到大家!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容