成员变量的访问权限
Objective-C中的成员变量有以下三种属性
- public(外部及其子类可访问)
- protected(子类可访问,外部不可访问)
- private(外部及其子类不可访问)
默认情况下,是protected属性
例子:类A有3个属性,类B是类A的子类,main函数对于类A来说是外部。
A.h
@interface A : NSObject { @public int publicVar; @protected int protectedVar; @private int privateVar; } @end
main.m
int main(int argc, const char * argv[]) { @autoreleasepool { A *a = [[A alloc] init]; a->publicVar = 1; //OK a->protectedVar = 2; //Error 编译不过 a->privateVar = 3; //Error 编译不过 } return 0; }
B.m
@implementation B - (void)f { B *b = [[B alloc] init]; b->publicVar = 1; //OK b->protectedVar = 2; //OK b->privateVar = 3; //Error 编译不过 } @end
注意,这里访问的方式用的是【->】而不是【.】哦哦哦哦
时间: 2024-10-06 03:29:48