成员变量和属性的声明与使用方法

时间:2022-11-17 23:37:31

什么是成员变量?什么是属性?


成员变量:就像是一个人的眼睛、鼻子、嘴巴等,为固有等,并且只能类内部自己使用的,不可以在外部进行调用。除非有@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”进行区分成员变量及属性。