在類的實現內部:
@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,類方法作爲消息,可以被髮送到類或者對象裏面去(實際上,就是可以通過類或者對象調用類方法的意思)。