国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

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

2019-11-08 19:31:51
字體:
供稿:網(wǎng)友
1、區(qū)別:靜態(tài)方法在程序開始時生成內(nèi)存,實例方法在程序運行中生成內(nèi)存,所以靜態(tài)方法可以直接調(diào)用,實例方法要先成生實例,通過實例調(diào)用方法,靜態(tài)速度很快,但是多了會占內(nèi)存。靜態(tài)內(nèi)存是連續(xù)的,因為是在程序開始時就生成了,而實例申請的是離散的空間,所以當(dāng)然沒有靜態(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)用,比較麻煩,類方法不用,比較簡單。  事實上如果一個方法與他所在類型的實例無關(guān),那么它就應(yīng)該是靜態(tài)的,決不會有人把它寫成實例方法。所以所有的實例方法都與實例有關(guān),既然與實例有關(guān),那么創(chuàng)建實例就是必然的步驟,沒有麻煩簡單一說。實際上上你可以把所有的實例方法都寫成靜態(tài)的,將實例作為參數(shù)傳入即可。  類方法,也稱靜態(tài)方法,在C++中指的是用static關(guān)鍵字修飾的方法,而在OC里就是+方法,在Swift里是class func。此方法屬類本身的方法,不屬于類的某一個實例(對象)。類方法中不可直接使用實例變量,在C++中其調(diào)用方式有三種:可直接調(diào)用、類名.方法名、對象名.方法名,

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

Swift中直接類名.方法。

實例方法,在C++中指的是不用static關(guān)鍵字修飾的方法,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,應(yīng)該被翻譯成為object self。

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

 

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

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

 

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

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 天气| 九寨沟县| 清原| 钟山县| 曲靖市| 棋牌| 平昌县| 东山县| 寻甸| 侯马市| 舞阳县| 博湖县| 库车县| 稷山县| 贡山| 禹城市| 吉安县| 黄山市| 黑龙江省| 尚义县| 南充市| 赣州市| 合水县| 厦门市| 仁布县| 秦安县| 托克托县| 灌阳县| 札达县| 万荣县| 石柱| 建瓯市| 云林县| 班玛县| 都江堰市| 安平县| 元江| 武安市| 济源市| 武定县| 舟曲县|