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