情况一:首先我们来了解最简单的类属性创建(未使用任何关键字,手动实现get set方法)
@interface Test : NSObject
{
int _num; //这里加下滑杠的原因是为了set方法中好属性区分
}
-(void)setNum:(int)num;
-(int)getNum;
@end
@implementation Test
-(int)getNum{
return _num;
}
-(void)setNum:(int)num{
_num=num;
}
@end
情况二:使用@property
说明:使用该关键字的时候,系统会帮我们自动实现get set方法,且会自动在我们的变量名前面加_区分,无需我们手动添加
@interface Test : NSObject
@property int num;
@end
@implementation Test
//实现类中无需任何操作,编译器自动帮我们完成get set方法
@end
说明2: @property 关键字操作,相当于编译器帮我自动生成get set方法,且自动利用@synthesize 关键字修改变量名加_
@interface Test : NSObject
@property int num;
@end
@implementation Test
@synthesize num=_num; //这里我们可以随意修改,如果没有这个,系统会自动生成_num.......注意该关键字必须和@property搭配使用
@end
情况三:假如我们需要重写@property 属性中的get 或者set方法
@interface Test : NSObject
@property int num;
-(int)num; //==注意,我们一次只能重写一个方法,要么是get,要么是set,两个同时重写的话编译器会默认你不需要自动生成get set方法,@property关键字就会报错==,如果实在需要两个都重写,就是用情况一中的方法去写
@end
@implementation Test
-(int)num{
return 10;
}
@end