之前在学习C++,或者java的时候,都会遇到一个可见性的问题,这篇文章我们来讨论声明的成员变量对对象方法(减号方法)和类方法(加号方法)的可见性问题。
(一)代码一:成员变量对减号方法可见,对加号方法不可见。
在People.m中声明一个成员变量:NSString *_peopleName;然后发现可以在减号方法中访问该变量,在加号方法中不可以访问该变量。
-(void)ObjectShow{ NSLog(@"我是对象方法"); [email protected]"成员变量";//这里可以访问到成员变量; }
+(void)ClassShow{ NSLog(@"我是类方法"); //在这里不能访问_peopleName; }
(二)代码二:静态成员变量对减号方法可见,对加号方法也可见。
在People.m中使用static(学过java的人很熟悉)关键字声明一个静态变量:static NSString *_peopleName2;然后可以发现同时可以在减号方法和加号方法中访问该静态变量。
-(void)ObjectShow{ NSLog(@"我是对象方法"); [email protected]"Jack";//对象方法中访问到了静态变量; } +(void)ClassShow{ NSLog(@"我是类方法"); [email protected]"Mike";//类方法中访问到了静态变量; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-07 10:39:57