#import <Foundation/Foundation.h>
@interface Person : NSObject {
//int _age;
}
//当编译器遇到@property时,会自动展开成getter和setter的声明
@property int age;
//- (int)age;
//- (void)setAge:(int)newAge;
- (void)test;
@end
#import "Person.h"
@implementation Person
//@synthesize age; 默认会去访问跟age同名的变量
//如果找不到同名的变量,会自动生成一个同名变量age
//@synthesize age = _age; 表示getter和setter方法会去访问_age成员变量
//如果.h文件没有声明_age,编译器会在.m文件中生成该私有成员变量
//某个版本以上的XCode可以自动生成该语句
//如果手动实现getter和setter方法,编译器不会自动生成该语句
//如果手动实现getter或setter方法,编译器会自动生成该语句,相应的方法也会被覆盖
@synthesize age = _age;
//- (int)age {
// return _age * 10;
//}
- (void)setAge:(int)newAge {
_age = newAge * 10;
}
- (void)test {
NSLog(@"I am %i years old.", _age);
}
@end
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *person = [[Person alloc] init];
person.age = 380;
NSLog(@"I am %i years old", person.age);
[person test];
[person release]; //release直接释放
}
return 0;
}