//
// 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
原文:http://blog.csdn.net/u010590318/article/details/41822291