什么是成员变量?什么是属性?
成员变量:就像是一个人的眼睛、鼻子、嘴巴等,为固有等,并且只能类内部自己使用的,不可以在外部进行调用。除非有@public,不建议该做法。
属性:就像是一个人的职业,供类外部使用。让类外可以访问成员变量。
专业地说,就是:属性就是成员变量的外部接口。
本质区别:类内使用成员变量,类外使用属性。
例:
people.h
@property NSString *peopleName; //声明一个属性
@interface people:NSObject
{
//下面是对成员变量对声明
NSString *_peopleName;
int _peopleAge; //注意年龄就不要加“*”了,因为它不是对象
int _peopleSex; //这里我们通常用int表示性别,因为只有两种情况,比如0代表女性,1代表男性即可
}
@end
people.m
@implementation people
-(instancetype)init{
self = [super init];
if(self){
_peopleName = @"张三";
}
return self; //在类内是可以直接使用成员变量的
}
@end
main.m
//刚才在people.h文件中,我们声明了 peopleName这个属性,因此在main.m中,我们就可以直接调用这个属性,调用方法为:类名.属性=@“xx”;
即:people.peopleName = @"张三";
⚠注意:对于新版本的xcode,我们可以不在people.h中进行成员变量的声明:
(1)只要在.h文件中声明了这个属性,系统就会自动在.m中为我们生成对应的成员变量;
(2)如果在.h文件中没有声明所需要的属性,则在.m文件中直接进行声明该成员变量也说可行的。
为了区分成员变量和属性,我们往往分别用“_peoplename”和“peoplename”进行区分成员变量及属性。