A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wanwan_jz 中级黑马   /  2016-3-26 23:24  /  806 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马