1)类方法的优点 a)节省内存空间 b)提高工作效率 c)作为工具方法 2)类方法的声明和实现
//声明一个类 Car @interface Car : NSObject { @public //声明属性速度 int _speed; } //声明对象方法run -(void) run; //声明不带参数的类方法 +(void) run; //声明带参数的类方法 +(void) run:(int) speed; @end 类方法的实现 @implementation Car -(void) run{
NSLog(@"\n对象方法:车在以%d的速度废弛!",_speed); } //实现不带参数的类方法 +(void) run{
// NSLog(@“\n对象方法:车在以%d的速度废弛!",_speed); 错 // 方法中不能引用成员变量 NSLog(@"\n类方法:车在疾驰!!!!");
//类方法中可以调用自己或其他类的类方法 //1)直接用类名调用 // [Car run:250]; [self run:100];
}
//实现带参数的类方法 +(void) run:(int) speed{
NSLog(@"\n类方法:车在以%d的速度废弛!",speed); }
@end
注意:类方法 或者 对象方法 调用 对象方法时 1)通过 对象作为参数来调用 //类方法调用对象方法(对象调用对象同理) +(void) run:(Car *) C{ [C run]; }
2)在当前方法内 实例化一个对象来调用 //类方法调用对象方法(对象调用对象同理) +(void) run{ Car *C = [Car new]; [C run]; }
注意:对象方法调用类方法,直接用类名调用 //对象方法调用类方法 -(void) run{
[Car run]; }
OC类方法的应用场景 当我们调用一个方法,该方法中不需要使用成员变量时,我们将该放啊发声明为类方法
|