一个变量如果只想在当前类中使用,那么只需要让它作为成员变量就可以了。
一个变量如果想在类外使用,则还需要将其作为属性。
上图所示的职业,大脑,眼睛,嘴都属于对象的特征,大脑,眼睛和嘴是成员变量,职业就可以看做属性。
成员变量的声明方式:
@interface People : NSObject { NSString *_peopleName; int _peopleAge; int _peopleSex; }
一般来说,成员变量是不可以在外部类进行调用的,但是如果在声明成员变量时候加上@public,则声明的成员变量也可以在外部调用,但这种方法是不被推崇的:
@interface People : NSObject { @public NSString *_peopleName; int _peopleAge; int _peopleSex; }
在调用的时候,不能用点语法,只能用指向语法,下面是main函数的一段代码:
//不能使用点语法调用公有的成员变量 p1.peopleNanme //指向语法 p1->_peopleName
属性的存在就是为了让类外可以访问成员变量,即属性就是成员变量的外部接口。
在老版本的Apple SDK声明成员变量和属性的时候,为了区别属性和成员变量,对同名的属性和成员变量,对成员变量前面加下划线。
而在新版本的苹果SDK中,在声明一个属性之后,苹果自动会生成一个加下划线的属性,在类内可以直接调用加下划线的属性,不必声明。因此在新版本中,成员变量没有必要在h文件声明了,只需要在m文件中书写即可。
时间: 2024-10-08 00:54:38