一.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即可解決