#import <Foundation/Foundation.h>
@interface Person : NSObject
{
int _age;
}
- (void)test1;
- (void)test2;
+ (void)test2;
+ (void)test3;
+ (void)test4;
- (void)test4;
@end
@implementation Person
- (void)test1
{
_age = 20;
int _age = 10;
NSLog(@"调用了-test1方法-%d", _age); //10
[self test2];
}
- (void)test2
{
int _age = 10;
NSLog(@"调用了-test2方法-%d", self->_age);
}
+ (void)test2
{
int _age = 20;
NSLog(@"调用了+test2方法-%d", _age); //20
}
+ (void)test3
{
NSLog(@"调用了+test3方法");
[self test4];
}
+ (void)test4
{
NSLog(@"调用了+test4方法");
}
- (void)test4
{
NSLog(@"调用了-test4方法");
}
@end
int main()
{
[Person test3];
Person *p = [Person new];
[p test1];
return 0;
}
输出:
调用了+test3方法
调用了+test4方法
调用了-test1方法-10
调用了-test2方法-20
发现规律:self既可以在对象方法中使用,也可以在类方法中使用
在方法中定义与成员变量名相同的变量,若不加self,使用的是新定义的变量,而不是成员变量
|
|