Objective-C中的static、self、super关键字

static关键字:

1、在C语言中,static关键字可修饰局部变量、全局变量和函数。

2、在Objective-C中,static关键字不能修饰属性和方法,但是可以修饰方法中的局部变量。若是方法中局部变量被static修饰,静态变量是存储在常量区的。

self关键字:

1、在Objective-C中,方法内部可以定义1个和属性名相同的局部变量。此时,若在方法中访问这个同名变量,访问的是局部变量。

2、可以在对象方法和类方法中使用,self是一个指针,对象方法的self是指向当前指针,类方法中的self是指向当前类。

3、self用在对象方法中:

a、self在对象方法中指向当前对象

b、显示访问当前对象的属性

c、必须使用self的场景:

        (1)方法中有和属性同名的局部变量;

        (2)在对象方法中,调用当前对象的其他的对象方法。

4、在类中使用self

          a、类加载

    当类第一次被访问时,会将类的代码存储在代码区

          b、类方法中,self也是一个指针,执行当前这个类在代码段中的地址,self在类方法中,相当与当前这个类

          c、取到类在代码中地址的方式

                 (1)调试查看对象isa指针的值;

                 (2)在类方法中查看self的值。

5、(1)不能用self调用本类的方法;

      (2)可以通过self调用当前类的其他类方法,但不能直接访问属性和调用对象方法。

super关键字

1、可以用在类方法和对象方法中;

2、在对象方法中,用super关键字调用当前对象从父类继承过来的对象方法;

3、类方法中,super关键字可以调用当前类从父类继承过来的类方法

        a、类方法也能被子类继承,父类中的类方法可以使用父类名来调用,也可以使用子类名调用;

        b、在子类的类方法中,可以使用super关键字调用父类的类方法。

4、super关键字只能调用父类方法,不能访问属性。

猜你喜欢

转载自blog.csdn.net/LEO_ANDERSON/article/details/81210871