@porperty是一個(gè)編譯器指令,跟預(yù)處理指令差不多也是編譯器指令。
源代碼 --> 編譯器指令 -->匯編 -->二進(jìn)制 -->可執(zhí)行程序
在Xocde4.4之前, 可以使用@porperty來代替getter/setter方法的聲明
也就是說我們只需要寫上@porperty就不用寫getter/setter方法的聲明
編譯器只要看到@property, 就知道我們要生成某一個(gè)屬性的getter/setter方法的聲明
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
int _age;
double _height;
double _weight;
NSString *_name;
}
/*
setter:
作用: 用于給成員變量賦值
1.一定是對(duì)象方法
2.一定沒有返回值
3.方法名稱以set開頭, 后面跟上需要賦值的成員變量名稱, 并且去掉下劃線, 然后首字母大寫
4.一定有參數(shù), 參數(shù)類型和需要賦值的成員變量一直, 參數(shù)名稱就是需要賦值的成員變量名稱去掉下劃線
*/
//- (void)setAge:(int)age;
- (void)setHeight:(double)height;
- (void)setWeight:(double)weight;
- (void)setName:(NSString *)name;
/*
- (void)setAge:(int)age;
- (int)age;
*/
@property int age;
/*
- (void)set_age:(int)_age;
- (int)_age;
*/
//@property int _age;
/*
getter:
作用: 用于獲取成員變量的值
1.一定是對(duì)象方法
2.一定有返回值, 返回值類型和需要獲取的成員變量的類型一致
3.方法名稱就是需要獲取的成員變量的名稱去掉下劃線
4.一定沒有參數(shù)
*/
//- (int)age;
- (double)height;
- (double)weight;
- (NSString *)name;
@end