访问修饰符


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