转自本人博客http://850361034.blog.163.com/blog/static/3280380920142271033170/
-----------------成员变量的1-4种作用域-------------------------------
ps:什么都不写,在@interface下默认是protected
@public 在有对象的条件下,在任意地方都能直接访问成员变量
@private 只能在当前类的对象方法中直接访问,其它地方通过set get方法访问(也就是说主函数不能访问,这个数据类型在Person中,那么只能在Person类中访问,他的子类中也有那种数据类型,但是不能在子类中直接访问--只能通过set,get方法访问-----------果在类的.m文件中【也就是@implementation中,但是不能跟@interface中重名】定义成员变量,则默认是private,即使使用public等其它作用域修饰,也不能改变private)
@protected(默认) 能在当前类和子类的对方法中直接访问(和private类似,但是在子类中也可以直接访问-----什么都不写,在@interface下默认是protected)
@package 作用域介于private和public之间,若2个类处于同一个框架中则可以直接访问对象的成员变量【学习框架才能用到】
----注意:如果在类的.m文件中【也就是@implementation中,但是不能跟@interface中重名】定义成员变量,则默认是private,即使使用public等其它作用域修饰,也不能改变private
-----写声明的目的是为了保证类的完整性,保证类的分工。并且开发中都会写完整。
-----父类=超类 superclass |