您的位置:首页 > 其它

OC学习那点事:构造方法和description方法

2013-07-21 10:33 232 查看
1.自定义的构造方法
Student.m文件:

@interface Student : NSObject 
{ 
    int _age; 
    int _no; 
} 
... …(getter/setter) 
//自己写一个构造方法 
-(id)initWithAge:(int)age AndNo:(int)no; 
@end


Student.h文件:

#import "Student.h" 
@implementation Student 
... …(getter/setter) 
-(id)initWithAge:(int)age AndNo:(int)no 
{ 
    //首先调用super的构造方法,然后判断self是否为nil 
    if (self = [super init]) 
    { 
        self.age = age; 
        self.no = no; 
    } 
    return self; 
}
main.m文件:

#import <Foundation/Foundation.h> 
#import "Student.h" 
int main(int argc, const char * argv[]) 
{ 
    @autoreleasepool { 
        Student *student = [[Student alloc]initWithAge:15 AndNo:2]; 
        NSLog(@"age is %i and no is %i",student.age,student.no); 
        [student release]; 
    } 
    return 0; 
}


2.重写父类的description方法
description方法:当使用%@打印一个对象的时候,会调用这个方法
在student.m文件中,重写description方法:

-(NSString *)description 
{ 
    NSString *str = [NSString stringWithFormat:@"age is %i and no %i",_age,_no]; 
    return str; 
}


在main.m的main函数中测试:

Student *student = [[Student alloc]initWithAge:15 AndNo:2]; 
NSLog(@"%@",student); 
[student release];
输出:

2013-07-19 00:02:19.410 构造方法[2446:303] age is 15 and no is 2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: