在类的实现内部:
@implementation test
- (void)viewDidLoad {
[super viewDidLoad];
[self test3];
[test test4]; //在实例方法中只能通过类名访问
}
-(void)test1{
NSLog(@"dong tai");
}
+(void)test2{
NSLog(@"jing tai");
}
-(void)test3{
[self test1];
// [self test2]; 调用错误
}
//总结:实例方法中可以用 self 调用实例方法,但不能用 self调用类方法
+(void)test4{// [self test1]; 调用错误
[self test2];
}
//总结: 类方法中可以用self调用类方法,但不能用self调用实例方法
@end
非类内部访问:类方法的调用可以通过类名.类方法和对象.类方法,而实例方法只能通过对象.实例方法访问。 也就是说类方法,不需要实例化对象就可以调用的方法,成员方法,必须通过实例化的对象调用。
还要注意:
1,类方法可以调用类方法。
2,类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法。
3,类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量,但只能用self访问类方法。
4,类方法作为消息,可以被发送到类或者对象里面去(实际上,就是可以通过类或者对象调用类方法的意思)。