Demo:加号级别的成员方法的实现:
#import <Foundation/Foundation.h>
@interface Person:NSObject
{
int _age;
}
-(id)initWithAge:(int)age;
+(id)personWithAge:(int)age;
-(void)print;
@end
@implementation Person
-(id)initWithAge:(int)age
{
self = [super init];
if (nil != self) {
_age = age;
}
return self;
}
+(id)personWithAge:(int)age
{ //返回id类型和用到self是为子类考虑,子类继承Person,当调用该方法是返回的是子类的对象
//在+级别的方法中,一般用self
id obj = [[self alloc] initWithAge:age];
return [obj autorelease];
}
-(void)print
{
NSLog(@"age = %d",_age );
}
@end
@interface Student : Person
@end
@implementation Student
@end
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Person* p = [Person personWithAge:20];
[p print];
Student* stu = [Student personWithAge:30];
NSLog(@"%@", NSStringFromClass([stu class]));
[stu print];
[pool drain];
return 0;
}