A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sajiner2 中级黑马   /  2014-12-20 23:21  /  1091 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

讲self时说的“当成员变量和局部变量同名时,采取就近原则,访问的是局部变量”怎么解释?

5 个回复

倒序浏览
- (void)test1 {     _age = 20;          int _age = 10;     NSLog(@"调用了-test1方法-%d", _age);这个输出的时10.
回复 使用道具 举报
你这写的语法都不对 怎么给你说,大括号不完整,一个函数 重新定义2次变量?
回复 使用道具 举报
self逻辑上离哪个近就是哪个变量,不是远的那个,也不是所有的,只是离他近的那个
回复 使用道具 举报
假如类里定义了实例变量_age。但是方法里又定义了局部变量_age。
- (void)test {
    int _age = 10; // 方法内定义一个变量,和实例变量_age同名
    NSLog(@"age = %i", _age); // 这样的话会就近访问方法内的这个局部变量_age
    NSLog(@"age = %i", self.age); // 而通过self调用get方法才能访问实例变量_age
}
回复 使用道具 举报 1 0
self :表示的是当前的对象或者类啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马