一.点语法
点语法的本质是方法调用,并不是访问成员变量,编译器看到点语法有两种处理
1 .是赋值,赋值的就是展开为set方法
2. 不是赋值:展开为set方法
使用示例:
Person类的声明:
点语法的测试:
二.OC成员变量的作用域
@public :任何地方访问
@private :只能在当前类的对象方法中直接访问
@protected :能在当前类和子类中直接访问(默认)
@package :只要处于同一个框架中就能直接访问对象成员变量
三. @property 与 @synthesize
由于类的封装性,要求我们要自己给外部提供一些方法去访问我们的成员变量,这方法在OC中就是set或get方法,但由于set或get方法格式固定,且如果成员变量过多,写起来很花费时间且没有太大的帮助,于是就有了下面的两个关键字帮助我们完成set和get方法:
1)@property
1. 用在@interface 中
2. 用来自动生成setter和getter
3.
@property
int
age;就可以替换下面两行
- (void)setAage:(int)age;
- (int)age;
1)@synthesize