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; }