Objective-C 语言编程:实例变量作用域与消息传递机制解析
1. 实例变量作用域
实例变量虽在类接口中声明,但更多关乎类的实现方式,而非使用方式。对象的接口体现在其方法上,而非内部数据结构。
方法与实例变量常存在一对一的对应关系,例如:
- (BOOL)isFilled
{
return filled;
}
不过,并非所有情况都如此。有些方法可能返回未存储在实例变量中的信息,有些实例变量存储的信息对象可能不愿公开。
随着类的不断修订,实例变量的选择可能改变,但声明的方法保持不变。只要消息是与类实例交互的方式,这些改变就不会影响类的接口。
为了让对象隐藏数据,编译器限制了实例变量的作用域,即限制其在程序中的可见性。同时,为提供灵活性,它允许将作用域明确设置为三个不同级别,每个级别由编译器指令标记:
| 指令 | 含义 |
| ---- | ---- |
| @private | 实例变量仅在声明它的类中可访问 |
| @protected | 实例变量在声明它的类及其子类中可访问 |
| @public | 实例变量在任何地方都可访问 |
指令适用于其后面列出的所有实例变量,直到下一个指令或列表结束。例如:
@interface Worker : NSObject
{
char *name;
@private
int age;
char *evaluation;
超级会员免费看
订阅专栏 解锁全文
10

被折叠的 条评论
为什么被折叠?



