类方法优点
一、优点:
1、节省每寸空间
2、提高效率 //不用创建对象,不用查找对象,
3、作为工具方法
二、易犯的错误
1、通过类的方法调用了类的成员变量 //类方法不能调用成员变量
2、类方法不能调用本身
三、对象方法如何调用对象方法
1、在当前对象方法中创建对象(可以是当前类也可以是其他类对象),使用新创建的对象调用对象方法
2、可以使用self
3、对象作为方法的参数传递过来,可以使用传递过类的对象调用方法
下面声明一个车类,定义两个对象方法,然后实现对象方法调用对象方法:
@interface car:NSObject//声明一个车类
-(void)run; //定义对象方法run
-(void)stop; //定义对象方法stop
-(void)run:(car*);
@end
@implementation car //事项汽车类
-(void)run
{
car *c = [car new];
[c stop]; //在当前对象方法中创建对象,使用新创建的对象调用对象方法
}
或者
-(void)run
{
[self stop]; //可以使用self
}
或者
-(void)run:(car *)c
{
[c stop]; //对象作为方法的参数传递过来,可以使用传递过类的对象调用方法
}
@end
四、在类方法中可以调用其他类方法
1、可以直接使用本类类名(或者其他类名)调用类方法
2、可以使用self
@interface Dog:NSObject //声明一个狗类
+(void) run;
@end
@implementation //实现狗类
+(void)run
{
NSLog(@“狗在跑”);
}
@end
@interface car:NSObject//声明一个车类
+(void)run;
+(void)stop;
@end
@implementation car //事项汽车类
+(void)stop
{
NSLog(@“汽车要停了”);
}
+(void)run
{
[Dog run]; //可以直接使用本类类名(或者其他类名)调用类方法
[car stop]; //可以直接使用本类类名(或者其他类名)调用类方法
}
或者
+(void)run
{
[self stop]; //可以使用self
}
五、在类方法中可以调用对象方法
1、对象作为方法的参数传递过来
2、可以创建一个对象
@interface Dog:NSObject //声明一个狗类
-(void) run;
@end
@implementation //实现狗类
-(void)run
{
NSLog(@“狗在跑”);
}
@end
@interface car:NSObject//声明一个车类
+(void)stop(:Dog*)dog;
+(void)run;
@end
@implementation car //事项汽车类
+(void)stop:(Dog*)dog
{
[dog run]; //对象作为方法的参数传递过来
}
+(void) run
{
Dog *dog =[Dog new];
[dog run];
} |
|