成员变量和属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了成员变量和属性相关的知识,希望对你有一定的参考价值。
一个变量如果只想在当前类中使用,那么只需要让它作为成员变量就可以了。
一个变量如果想在类外使用,则还需要将其作为属性。
上图所示的职业,大脑,眼睛,嘴都属于对象的特征,大脑,眼睛和嘴是成员变量,职业就可以看做属性。
成员变量的声明方式:
@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文件中书写即可。
以上是关于成员变量和属性的主要内容,如果未能解决你的问题,请参考以下文章
区分成员变量和类变量,this关键字,封装,静态方法和静态代码块,通通给我看懂(概念版) 后续有相关示例
区分成员变量和类变量,this关键字,封装,静态方法和静态代码块,通通给我看懂(概念版) 后续有相关示例
面向对象的成员: 实例变量 类变量 实例方法 类方法 静态方法 属性 私有