五 oc中self與super的基本使用

2021-06-29 01:34:13 字數 1739 閱讀 6624

------- windows phone 7手機開發、.ios培訓、期待與您交流! -------

我們知道大部分oc關鍵字都是以@開頭的,例如,初學者最常見的幾個 @inte***ce @implementation @end 等等,但是self與super是oc中為數不多的,前面不加@的關鍵字。一般情況下,我們呼叫乙個方法,包括類方法與物件方法,都會採用這樣的格式,[方法的執行者 方法名],類方法與物件方法的區別在於,方法執行者的不同,類方法的執行者一般是類名或者說是類物件,而物件方法的執行者,一般是類型別的物件。

self的基本使用,誰呼叫了當前方法,self就代表誰,self出現在物件方法裡則代表了物件,self出現在類方法裡面則代表了類。在物件方法中,可以使用self->成員變數來訪問當前物件內部的成員變數,而[self 方法名]可以呼叫其他物件方法或者類方法。

例如:

#import@inte***ce tiger : nsobject

+ (void)eat;

+ (void)run;

@end

@implementation tiger

+ (void)eat

+ (void)run

@end

int main(void)

還有需要值得注意的是,不要在方法中再次用self呼叫自己,這樣會引發死迴圈。

例如:

#import@inte***ce fruit : nsobject

- (void)test;

@end

@implementation fruit

- (void)test

@end

int main(void)

除此之外,我們得明白,函式是不依賴物件而存在的,意思就是呼叫函式的時候,不需要用到類物件或者是類型別的物件。

例如:

#import@inte***ce fruit : nsobject

- (void)method;

@end

@implementation fruit

void new()

- (void)method

@end

int main(void)

super的作用是,直接呼叫父類中的某個方法,super處在物件方法中,那麼就會呼叫父類的物件方法,super處在類方法中,那麼就會呼叫父類的類方法。super一般使用在子類重寫父類的方法時,想保留父類的一些行為。意思就是需要有繼承,才會有super的使用。

例如:

#import@inte***ce people : nsobject

- (void)walk;

@end

@implementation people

- (void)walk

@end

@inte***ce adult : people

- (void)walk;

@end

@implementation adult

- (void)walk

@end

int main(void)

綜上所述,self與super都是oc中常用的關鍵字,是初學者必須掌握好的兩個關鍵字,self用於當前類物件或者類型別物件呼叫方法,誰呼叫即誰就是self。super一般用於子類想重寫父類的方法,但又想保留父類的一些行為。

OC中self和super的使用

1 self用在物件方法中,self指代的是呼叫當前方法的那個物件,可以呼叫其它物件方法。2 self用在類方法中,self指代的是當前類,可以呼叫其它類方法,不可以呼叫物件方法。3 self修飾例項變數 一般在set方法中使用 用在形參變數和例項變數同名時。例 void setspeed int ...

在OC中,super和self的用法

super 指代的是父類物件 super bark 呼叫了父類的bark方法 1 self用在物件方法中,self指代的是呼叫當前方法的那個物件,可以呼叫其它物件方法。2 self用在類方法中,self指代的是當前類,可以呼叫其它類方法,不可以呼叫物件方法。3 self修飾例項變數 一般在set方法...

OC語言基礎六 self和super

oc語言的self相當於c 語言的this,是乙個指標,隨著類的建立預設被建立出來。self和super的使用範圍是在類的內部,都只能用來呼叫方法。instancetype person void setname nsstring name person person self alloc init...