一.self關鍵字
? ? OC語言中的self,就相當于C++卦溢、Java中的this指針
? ? 1.類方法中的self
在整個程序運行過程中,一個類有且僅有一個類對象。
通過類名調(diào)用方法就是給這個類對象發(fā)送消息既绕。
類方法的self就是這個類對象
在類方法中可以通過self來調(diào)用其他的類方法
不能在類方法中去調(diào)用對象方法或成員變量,因為對象方法與成員變量都是屬于具體的實例對象的涮坐。
? ? 2.對象方法中的self
在整個程序運行過程中凄贩,對象可以有0個或多個
通過對象調(diào)用方法就是給這個對象發(fā)送消息
對象方法中self就是調(diào)用這個方法的當前對象。
在對象方法中袱讹,可以通過self來調(diào)用本對象上的其他方法
在對象方法中,可以通過self來訪問成員變量
? ? 3.self總結(jié)
誰調(diào)用self所在的方法捷雕,那么self就是誰
self在類方法中,就是這個類的類對象救巷,全局只有一個,可通過self調(diào)用本類中的其他類方法浦译,但是不能通過self來調(diào)用對象方法或訪問成員變量
self在對象方法中,就是調(diào)用這個方法的那個對象帽哑, 可以通過self調(diào)用本類中其他的對象方法叹俏,訪問成員變量,但不能通過self調(diào)用本類的類方法粘驰。
通過self調(diào)用方法的格式:[self 方法名];
通過self訪問成員變量格式:self->成員變量名
? ? 4.self使用注意
同時有對象方法和類方法存在的時候,self不會調(diào)錯
self只能在方法中使用;不要使用self來調(diào)用函數(shù)蝌数,也不可以在函數(shù)內(nèi)部使用self;
使用self調(diào)用本方法籽前,導致死循環(huán)調(diào)用。
二.super關鍵字
? ? 1.super基本概念
? ? ? ? super是個編譯器的指令符號,只是告訴編譯器在執(zhí)行的時候,去調(diào)誰的方法.
? ? ? ? ? ? self是一個隱私參數(shù);
self refers to the object receiving a messageinobjective-C programming.
? ? ? ? ? ? super 并不是隱藏的參數(shù)肄梨,它只是一個“編譯器指示符”挠锥,它和 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)用父類中的某個方法
+ 2.super在對象方法中蓖租,那么就會調(diào)用父類的對象方法
super在類方法中羊壹,那么就會調(diào)用父類的類方法
? ? 使用場合:
? ? ? ? 子類重寫父類的方法時想保留父類的一些行為