关于@property 类属性关键字使用,以及重写set get方法

情况一:首先我们来了解最简单的类属性创建(未使用任何关键字,手动实现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

你可能感兴趣的:(关于@property 类属性关键字使用,以及重写set get方法)