------- IOS开发、IOS培训、期待与您交流! -------
类方法和实例方法
实例方法是是以 - 开头 ,类方法是以 + 开头;
实例方法是用实例对象访问,类方法的对象是类而不是实例,通常创建对象或者工具类。
是对类本身执行某些操作的方法例如创建类的实例
在实例方法里,根据继承原理发送消息给self和super其实都是发送给self在类方法里面self是其他的类的类方法,在类方法中给self发送消息只能发类方法self是类super也是什么时候用类方法,要创建一个实例时候获取一个共享实例,或者获取关于类的一些共有信息
[[[ObjectClass alloc] init] select];
就是在类方法里创建一个实例,然后代用实例方法就可以了
Java中的构造方法与实例方法,有什么区别?
行为差异:构造方法,创建对象后自动调用构造方法,实例方法必须对象.实例方法进行调用。
功能差异:构造方法多用于初始化对象状态,对属性赋初值,实例方法用于实现某个功能
它只有类方法和实例方法,加号表示类方法,类方法可以直接调用,而不用创建这个类的实例;减号表示实例方法,需要创建这个类的实例对象才可以调用。
类方法的调用格式为 [类名 类方法],成员方法调用格式为 [实例名 实例方法],这种模式在ObjC中被称为消息机制,[对象 消息]即给对象发送了一个消息,产生的 效果就是该对象调用了该类中定义的对应的实例方法;
对象方法
1>以 - 开头
2>只能由对象来调用
3>对象方法中能访问当前对象的成员变量(实例变量)
类方法
1>以 + 开头
2>只能由类(名)来调用
3>类方法中不能访问成员变量,不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法,但
可以使用self,因为self不是实例变量。
4>不依赖于对象,执行效率高,所以能用类方法,尽量用类方法
5>使用场合:当方法内部不需要使用到成员变量时,就可以改为类方法
6>类方法可以调用类方法。
7>类方法作为消息,可以通过类或者对象调用类方法
可以允许类方法和对象方法同名
大家需要记住下面的规则:
1,实例方法里面的self,是对象的首地址。
2,类方法里面的self,是Class.
尽管在同一个类里面的使用self,但是self却有着不同的解读。在类方法里面的self,可以翻译成class self;在实例方法里面的self,应该被翻译成为object self。在类方法里面的self和实例方法里面的self有着本质上的不同,尽管他们的名字都叫self。