黑马程序员技术交流社区

标题: 笔记分享 [打印本页]

作者: Flower.    时间: 2015-12-2 10:13
标题: 笔记分享
/*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;
   
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2