标签:点语法 变量作用域 property synthesize
// // Person.h // 04-点语法 // #import <Foundation/Foundation.h> @interface Person : NSObject { int _age; NSString *_name; } - (void)setAge:(int)age; - (int)age; - (void)setName:(NSString *)name; - (NSString *)name; @end
#import "Person.h" @implementation Person - (void)setAge:(int)age { _age = age; } - (int)age { return _age; } - (void)setName:(NSString *)name { _name = name; } - (NSString *)name { return _name; } @end
#import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { Person *p = [Person new]; // 点语法的本质还是方法调用 p.age = 10; // [p setAge:10]; int a = p.age; // [p age]; p.name = @"Jack"; NSString *s = p.name; NSLog(@"%@", s); return 0; }
// 点语法的本质还是方法调用 p.age = 10; // [p setAge:10]; int a = p.age; // [p age];
// 会引发死循环 //self.age = age; // 相当于在调用 [self setAge:age]; }
// 会引发死循环 //return self.age;//相当于 [self age];
@public // 在任何地方都能直接访问对象的成员变量 int _age; @private // 只能在当前类的对象方法中直接访问 int _height; @protected // 能在当前类和子类的对象方法中直接访问 int _weight; int _money;
// @property:可以自动生成某个成员变量的setter和getter声明 @property int age; //相当于下面这两句: - (void)setAge:(int)age; - (int)age;
// @synthesize自动生成age的setter和getter实现,并且会访问_age这个成员变量 @synthesize age = _age; @synthesize height = _height; @synthesize weight = _weight, name = _name;
黑马程序员------OC之点语法、成员变量作用域、@property和@synthesize
标签:点语法 变量作用域 property synthesize
原文地址:http://blog.csdn.net/u010590318/article/details/41822291