05、访问修饰符

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


7. 我们刚才讲的@private修饰的属性就叫做私有属性.
只能在类的内部访问.
但是在外界的时候,Xcode仍然会提示这个对象中有这个属性 只不过没权访问.
我们想要实现的效果:真私有. 让外界不知道对象里面有这么1个属性.
8. 其实在@implementaion之中也可以写1个大括弧.
把属性定义在@implementation的大括弧之中.
这里面的属性. 是1个私有属性. 各种访问修饰符无效.
外界根本就不会提示.
将属性定义在@implementation之中 和 将属性定义在@interface之中并标记为@private
唯一的区别: 提示和不提示. 都不能在外界访问.
9. 私有方法.
方法不写声明,只写实现. 那么这个方法就是1个私有方法.
只能在本类的其他方法中调用 不能再外界调用.




猜你喜欢

转载自blog.csdn.net/daidaishuiping/article/details/80190141