黑马程序员技术交流社区

标题: 构造方法测试 [打印本页]

作者: wanwan_jz    时间: 2016-3-26 23:24
标题: 构造方法测试
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




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