public 、private、protected

来源:互联网 发布:域名具有特性 编辑:程序博客网 时间:2024/05/22 03:05

实例变量修饰符作用域:从出现的位置开始,一直直到下一个修饰符出现

如果没有遇到下一个实例变量修饰符,那么就会修饰后面所有的实例变量

@interface A : NSObject{    @public    int a;    int b;    @private    int c;    @protected    int d;    int e;}@end@implementation A{    int f;}@end

public

  • 可以在本类中访问被public修饰的成员变量
  • 可以在其它类中访问被public修饰的成员变量
  • 可以在子类中访问父类中被public修饰的成员变量

private

  • 可以在本类中访问被private修饰成员变量
  • 不可以在其它类中访问被private修饰的成员变量
  • 不可以在子类中访问父类中被private修饰的成员变量

protected

  • 可以在本类中访问被protected修饰符的成员变量
  • 不可以在其它类中访问被protected修饰的成员变量
  • 可以在子类中访问父类中被protected修饰的成员变量
    注意:默认情况下所有的实例变量都是protected

package

  • 介于public 和 private 之间的
  • 如果是在其它包中访问那么就是private的
  • 如果是在前代码所在的访问就是public的

@implementation

  • 一般定义在@implementation的成员变量,默认就是私有成员变量
  • 并且和利用@private修饰不一样,在@implementation中定义的成员变量在其他类中无法查看,也无法访问
  • 在@implementation中定义的私有变量只能在本类中访问

这里写图片描述

这里写图片描述

这里写图片描述

0 0
原创粉丝点击