####实例变量修饰符作用域:从出现的位置开始,一直直到下一个修饰符出现
####如果没有遇到下一个实例变量修饰符,那么就会修饰后面所有的实例变量
@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中定义的私有变量只能在本类中访问