黑马程序员技术交流社区
标题:
8.05作业
[打印本页]
作者:
m573555543
时间:
2014-5-5 15:39
标题:
8.05作业
本帖最后由 m573555543 于 2014-5-7 10:15 编辑
@implementation Person
- (void)test1
{
_age = 20;
int _age = 10;
NSLog(@"调用了-test1方法-%d", _age);
[self test2];
}
- (void)test2
{
int _age = 10;
NSLog(@"调用了-test2方法-%d", self->_age);
}
+ (void)test3
{
NSLog(@"调用了+test3方法");
[self test4];
}
@end
int main()
{
Person *p = [Person new];
[p test1];
return 0;
}
这个为什么是
调用了-test1方法-10
调用了-test2方法-20
而不是调用了-test1方法-10
调用了-test2方法-10
作者:
葬花桥
时间:
2014-5-5 15:58
因为test2方法
- (void)test2
{
int _age = 10;
NSLog(@"调用了-test2方法-%d", self->_age);
}
复制代码
注意其中的self-<_age,这个是调用的是成员变量_age,而不是方法中的局部变量_age
成员变量_age在test1方法中被赋值为20,所以这里输出为20而不是局部变量的10
作者:
m573555543
时间:
2014-5-5 16:31
葬花桥 发表于 2014-5-5 15:58
因为test2方法
注意其中的self-
明白了。谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2