1.self关键字 自己的 代表当前对象和当前类的。
a.如果self是在对象方法中使用的话,self就代表当前的对象。
self其实是一个指针,是当前对象的地址。
有什么用?
对象方法中,是可以声明一个和属性名字相同的局部变量的。
在对象方法里,如果你直接使用这个名字相同的这个变量,得到的值是这个局部变量的值。
如果我就是要拿到属性的值呢?就是用self关键字去执向。
如果在对象方法中,要去调用当前对象的其他的对象方法,就使用self去调用。
b. self也是可以用在类方法中的,self就代表当前类。
如何得到类的地址(类加载到代码段中的地址):
1.)调用这个类的对象方法class,返回这个类的地址
2.)调用这个类的类方法class,返回的也是这个类的地址
3.)类方法中的self,就是指向这个类。
4.)类都有一个isa指针
如果在类方法中,去调用另外的类方法.
我们当然可以使用类名去调用另外的类方法,但是我们不建议这么使用。
我们一般的使用self去调用另外的类方法,因为在类方法中self就代表这个类。
//------------------------------------------------------super----------------------------------------------------------//
1.super 关键字 只能运用在类方法和对象方法中。
a.当super运用在对象方法中,可以去调用子类对象中从父类继承过来的对象方法。
父类中的对象方法继承给子类了,那么这个方法就是子类的了,你当然可以用self去调用。
但是这种情况,我们建议使用super关键字去调用,代码的可读性更高,让人一看就值得你这个方法,是从父类继承过来的。
b. 当super运用在类方法中,可以去调用子类对象中从父类继承过来的类方法。
类方法是可以继承的。
父类中的类方法,可以继承给子类, 子类就拥有了这个类方法,子类中的其他类方法中当然可以用self去调用这个类方法。
但是这种情况,我们建议使用super关键字去调用父类继承过来的类方法,代码可读性更高。让人一看就知道这个类方法是从父类继承过来的。
c.superhi只能调用方法,不能调用属性。
//------------------------------------------------------static关键字----------------------------------------------------------//
1.static关键字
a.c语言中static关键字的用法
修饰局部变量:将局部变量变成了静态变量,存放在常量区中的。
修饰全局变量:这个被static修饰的全局变量只能在当前模块中访问,
修改函数:这个被static修饰的函数只能在当前模块中被调用。
b.static也是可以在oc中使用的。
在oc中,static关键字是不能修饰 属性 和方法的。
在oc中,可以用static修饰对象方法中的局部变量。 对象方法中的局部变量如果被static修饰了,那么就变成了一个静态变量,就会存在常量区中,程序中就只有一个这个静态变量。使用的时候也是使用这一个。
c.什么时候我们需要把一个对象中的方法被static修饰呢?
当对象方法中的某一个变量,是共有的,比如学生的id,每次创建一个学生,id是要自动增长的。id就可以设置成被static修饰了的。