Student.h:
#import <Foundation/Foundation.h>
@interface Student : NSObject
@property(nonatomic,retain) NSString * name;
@property(nonatomic,assign) int age;
@end
Student.m:
#import "Student.h"
@implementation Student
//动态方法,在main函数中类alloc了之后调用,但是要手动管理内存,要手动释放
-(id) initWithAge:(int)age{
if (self == [super init]) {
_age = age;
}
return self;
}
//静态构造方法,在main函数中不需要你手动管理内存释放
+(id)studentWithAge:(int)age{
Student *stu = [[[Student alloc] init] autorelease];\
stu.age = age;
return stu;
}
-(NSString *)description{
return [NSString stringWithFormat:@"name:%@ age:%i创建了",_name,_age];
}
-(void)dealloc{
NSLog(@"name:%@ age:%i被释放了",_name,_age);
[_name release];
[super dealloc];
}
@end
main:
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
//动态方法需要手动释放内存
Student *stu1= [[Student alloc] initWithAge:10];
stu1.name = @"dingxiaowei";
NSLog(@"%@",stu1);
[stu1 release];
//静态构造方法不需要你管理内存
Student *stu2 =[Student studentWithAge:20];
stu2.name = @"wangning";
NSLog(@"%@",stu2);
}
return 0;
}