iOS 類方法與實例方法總結(jié)

1、區(qū)別:

靜態(tài)方法在程序開始時生成內(nèi)存,實例方法在程序運行中生成內(nèi)存器瘪,
所以靜態(tài)方法可以直接調(diào)用,實例方法要先成生實例,通過實例調(diào)用方法汤善,靜態(tài)速度很快,但是多了會占內(nèi)存牧愁。
靜態(tài)內(nèi)存是連續(xù)的,因為是在程序開始時就生成了,而實例申請的是離散的空間,所以當然沒有靜態(tài)方法快素邪,
而且靜態(tài)內(nèi)存是有限制的,太多了程序會啟動不了猪半。

2兔朦、使用場景:

如果需要訪問或者修改某個實例的成員變量時,將該方法定義成實例方法磨确。

類方法正好相反沽甥,它不需要訪問或者修改某個實例的成員變量。
類方法一般用于實現(xiàn)一些工具方法乏奥,比如對某個對象進行擴展摆舟,或者實現(xiàn)單例。

類方法常駐內(nèi)存,實例方法不是恨诱,所以類方法效率高但占內(nèi)存歇式。

類方法在堆上分配內(nèi)存,實例方法在堆棧上胡野。

事實上所有的方法都不可能在堆或者堆棧上分配內(nèi)存,方法作為代碼是被加載到特殊的代碼內(nèi)存區(qū)域痕鳍,這個內(nèi)存區(qū)域是不可寫的硫豆。

實例方法需要先創(chuàng)建實例才可以調(diào)用,比較麻煩笼呆,類方法不用熊响,比較簡單。

事實上如果一個方法與他所在類型的實例無關诗赌,那么它就應該是靜態(tài)的汗茄,決不會有人把它寫成實例方法。所以所有的實例方法都與實例有關铭若,既然與實例有關洪碳,那么創(chuàng)建實例就是必然的步驟,沒有麻煩簡單一說叼屠。實際上上你可以把所有的實例方法都寫成靜態(tài)的瞳腌,將實例作為參數(shù)傳入即可。

類方法镜雨,也稱靜態(tài)方法嫂侍,在C++中指的是用static關鍵字修飾的方法,而在OC里就是+方法荚坞,在Swift里是class func挑宠。

此方法屬類本身的方法,不屬于類的某一個實例(對象)颓影。

類方法中不可直接使用實例變量各淀,

在C++中其調(diào)用方式有三種:可直接調(diào)用、類名.方法名诡挂、對象名.方法名揪阿,

在OC中是不需要alloc一個新的對象,直接用類名調(diào)用咆畏,

Swift中直接類名.方法南捂。

實例方法,在C++中指的是不用static關鍵字修飾的方法旧找,OC中是-方法溺健,Swift中就是普通的func。 每個實例對象都有自身的實例方法,互相獨立鞭缭,不共享一個剖膳。

在C++中其調(diào)用方式只能是對象名.方法名。

在OC里是需要alloc一個對象岭辣,然后調(diào)用吱晒。

在Swift中也是需要對象.方法。

Objective-C里面既有實例方法也類方法沦童。類方法(Class Method) 有時被稱為工廠方法(Factory Method)或者方便方法(Convenience method)仑濒。工廠方法的稱謂明顯和一般意義上的工廠方法不同,從本質(zhì)上來說偷遗,類方法可以獨立于對象而執(zhí)行墩瞳,所以在其他的語言里面類方法有的時候被稱為靜態(tài)方法。

注意點一:類方法
1氏豌,類方法可以調(diào)用類方法喉酌。
2汰具,類方法不可以調(diào)用實例方法乡括,但是類方法可以通過創(chuàng)建對象來訪問實例方法。
3懦鼠,類方法不可以使用實例變量纪铺。類方法可以使用self歪架,因為self不是實例變量。
4霹陡,類方法作為消息和蚪,可以被發(fā)送到類或者對象里面去(實際上,就是可以通過類或者對象調(diào)用類方法的意思)烹棉。

注意點二:self的規(guī)則
大家需要記住下面的規(guī)則:
1攒霹,實例方法里面的self,是對象的首地址浆洗。
2催束,類方法里面的self,是Class.

盡管在同一個類里面的使用self伏社,但是self卻有著不同的解讀抠刺。

在類方法里面的self,可以翻譯成class self摘昌;在實例方法里面的self速妖,應該被翻譯成為object self。

在類方法里面的self和實例方法里面的self有著本質(zhì)上的不同聪黎,盡管他們的名字都叫self罕容。

類方法創(chuàng)造的對象要不要用release釋放?

答: 不需要 這個對象被放到自動釋放池中,在ARC中已經(jīng)不需要考慮這個問題了

Object-C中的私有方法和私有成員變量

成員變量默認對內(nèi)是共有的锦秒,對外是私有的露泊。

原文:https://blog.csdn.net/youshaoduo/article/details/55253041

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市旅择,隨后出現(xiàn)的幾起案子惭笑,更是在濱河造成了極大的恐慌,老刑警劉巖生真,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沉噩,死亡現(xiàn)場離奇詭異,居然都是意外死亡汇歹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門偿凭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來产弹,“玉大人,你說我怎么就攤上這事弯囊√瞪冢” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵匾嘱,是天一觀的道長斤斧。 經(jīng)常有香客問我,道長霎烙,這世上最難降的妖魔是什么撬讽? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮悬垃,結(jié)果婚禮上游昼,老公的妹妹穿的比我還像新娘。我一直安慰自己尝蠕,他們只是感情好烘豌,可當我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著看彼,像睡著了一般廊佩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上靖榕,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天标锄,我揣著相機與錄音,去河邊找鬼茁计。 笑死鸯绿,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓶蝴,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼毒返,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舷手?” 一聲冷哼從身側(cè)響起拧簸,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎男窟,沒想到半個月后盆赤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡歉眷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年牺六,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汗捡。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡淑际,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扇住,到底是詐尸還是另有隱情春缕,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布艘蹋,位于F島的核電站锄贼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏女阀。R本人自食惡果不足惜宅荤,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浸策。 院中可真熱鬧膘侮,春花似錦、人聲如沸的榛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夫晌。三九已至雕薪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晓淀,已是汗流浹背所袁。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凶掰,地道東北人燥爷。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓蜈亩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親前翎。 傳聞我的和親對象是個殘疾皇子稚配,可洞房花燭夜當晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容