/*self的用法
self 可以在类中用来表示调用者,去调用方法.或属性.
注意: 当self调用属性时,只在对象方法中.因为类方法中不能用属性.
self调用属性,只表示类的对象.
*/
#import <Foundation/Foundation.h>
@interface Person : NSObject{
char *_name;
}
-(void)setName:(char *)name;
-(void)smile;
-(void)talk;
+(void)haha;
+(void)haha2;
@end
@implementation Person
-(void)setName:(char *)name{
_name=name;
}
+(void)haha{
NSLog(@"haha..很开心..");
//self->_name;//错误,不能在类方法中访问属性
}
+(void)haha2{
//在类方法中,表示的是类
[self haha];
NSLog(@"haha222..很开心..");
}
-(void)smile{
char *_name="fred";
//self表示调用这个方法的对象.而对象->name.这个取的是属性.
NSLog(@"哈哈..很开心..%s",self->_name);
}
-(void)talk{
//smile;错误
//self:表示调用者.
[self smile];//如果self是在对象方法中,则表示这个类的对象.
NSLog(@"%s讲了一个笑话..",_name);
}
@end
int main(){
Person *p=[Person new];
[p setName:"judy"];
[p smile];
[Person haha];
// Person *p1=[Person new];
// [p1 talk];
// [Person haha2];
return 0;
}
|
|