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关键字只能调用父类方法,不能访问属性。