iOS中self與super

一.self關(guān)鍵字
OC語言中的self,就相當(dāng)于C++、Java中的this指針

1.類方法中的self

在整個(gè)程序運(yùn)行過程中,一個(gè)類有且僅有一個(gè)類對(duì)象。
通過類名調(diào)用方法就是給這個(gè)類對(duì)象發(fā)送消息。
類方法的self就是這個(gè)類對(duì)象
在類方法中可以通過self來調(diào)用其他的類方法

不能在類方法中去調(diào)用對(duì)象方法或成員變量,因?yàn)閷?duì)象方法與成員變量都是屬于具體的實(shí)例對(duì)象的。

2.對(duì)象方法中的self

在整個(gè)程序運(yùn)行過程中,對(duì)象可以有0個(gè)或多個(gè)
通過對(duì)象調(diào)用方法就是給這個(gè)對(duì)象發(fā)送消息
對(duì)象方法中self就是調(diào)用這個(gè)方法的當(dāng)前對(duì)象。
在對(duì)象方法中,可以通過self來調(diào)用本對(duì)象上的其他方法

在對(duì)象方法中,可以通過self來訪問成員變量

3.self總結(jié)

誰調(diào)用self所在的方法,那么self就是誰
self在類方法中,就是這個(gè)類的類對(duì)象,全局只有一個(gè),可通過self調(diào)用本類中的其他類方法,但是不能通過self來調(diào)用對(duì)象方法或訪問成員變量
self在對(duì)象方法中,就是調(diào)用這個(gè)方法的那個(gè)對(duì)象, 可以通過self調(diào)用本類中其他的對(duì)象方法,訪問成員變量,但不能通過self調(diào)用本類的類方法。

通過self調(diào)用方法的格式:[self 方法名];
通過self訪問成員變量格式:self->成員變量名

二.super關(guān)鍵字

1.super基本概念

super是個(gè)編譯器的指令符號(hào),只是告訴編譯器在執(zhí)行的時(shí)候,去調(diào)誰的方法.
self是一個(gè)隱私參數(shù);

self refers to the object receiving a messageinobjective-C programming.
super 并不是隱藏的參數(shù),它只是一個(gè)“編譯器指示符”,它和 self 指向的是相同的消息接收者

super is a flag that tells the compiler to searchforthe method implementationina very different place. It begins the superclass of the class that defines the method wheresuperappears.

2.super的作用
  • 1.直接調(diào)用父類中的某個(gè)方法
  • 2.super在對(duì)象方法中,那么就會(huì)調(diào)用父類的對(duì)象方法
    super在類方法中,那么就會(huì)調(diào)用父類的類方法

使用場合:
子類重寫父類的方法時(shí)想保留父類的一些行為

.(點(diǎn)語法)是訪問類的屬性,本質(zhì)是調(diào)用set、get方法。
->是訪問成員變量,但成員變量默認(rèn)受保護(hù),所以常常報(bào)錯(cuò),手動(dòng)設(shè)為public即可解決

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

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