一、点语法
点语法的本质是方法调用
Person *p = [Person new];
p.age=10;//相当于set方法 [p setAge:10]
int a = p.age;//相当于get方法 [p age]
判断是set还是get看是否赋值:p.age本身被赋值就是set方法,给别的赋就是get方法
二、成员变量的作用域
1.@private :私有的 只能在当前类的对象方法中访问
2.@protected:受保护的 只能在当前类和子类的对象方法中访问(默认访问权限为 protected)
3.@public :公共的 文件的任何地方都可以访问
4.@package :包介于private 与 public 之间,只要在同一个框架中,就可以直接访问对象
在类的实现中写的成员变量,为私有的。
三、property和synthesize
@property 用来声明属性,自动声明属性的get,set方法
@synthesize 用来实现属性,自动实现属性的get,set方法
好处:简化了代码量,当一个类的成员变量很多时,可以省略很多代码。
格式:@property vartype varname1,vartype varname2......; //
相当于
- (void) setVarname:Newvarname;
- (vartype) varname;
格式:@synthesize varname1=_varname1,varname2=_varname2; // property中某个成员变量的set和get的实现
Xcode4.4之后@proper可以完成@synthesize 的功能,即可以用@property完成成员变量的set方法和get方法的声明和实现
则在声明中只写@property 就可以了
例如:
@interface ClassName : NSObject
@property vartype varname1,vartype varname2......; //
@end
@implementation ClassName
@end
假如,写了@property又写了@implementation,同时也写了对应变量的get,set方法,则优先用写 的get,set方法。