- 访问修饰符:用来修饰属性,可以限定对象的属性在那一段范围之中访问
- @private:私有 ,只能在本类的方法实现中访问
- @protected:受保护的,只能在本类和本类的子类的方法实现中访问
- @package: 可以在当前框架中访问
- @public:公共,可以在任意地方访问
- 如果不为属性指定访问修饰符,那么默认就是@protected
- 子类仍然可以继承父类的私有属性,只不过,在子类中无法去直接访问从父类继承过来的私有属性。但是如果父类中有一个方法在为属性赋值或者取值,那么子类可以调用这个方法 间接的访问父类的私有属性。
- 访问修饰符的作用。
- 从写访问修饰符的地方开始往下,直到遇到另外一个访问修饰符或者结束大括号为止。中间的所有的属性都应用这个访问修饰符
- 使用建议
- @public,无论什么情况下都不要使用
- @private ,如果只想在本类中使用,不想在子类中使用
- @protected ,如果你希望属性只在本类和本类的子类中使用
- 推荐使用默认的@protected
- 访问修饰符只能用来修饰属性不能用来修饰方法
- 真私有:让外界不知道有这么一个属性
- 将属性定义在@implementation的大括号之中可以实现真私有,这时访问修饰符无效。
- 私有方法
- 方法不写声明,只写实现,那么这个方法就是一个私有方法