//// Person.h#import@interface Person : NSObject{ @public int _age; @protected double _height; @private NSString *_name; @package double _weight;}// 如果只有方法的实现, 没有方法的声明, 那么该方法就是私有方法// 在OC中没有真正的私有方法, 因为OC是消息机制//- (void)test;@end
//// Person.m#import "Person.h"@implementation Person{ // 实例变量(成员变量)既可以在@interface中定义, 也可以在@implementation中定义 // 写在@implementation中的成员变量, 默认就是私有的成员变量, 并且和利用@private修饰的不太一样, 在@implementation中定义的成员变量在其它类中无法查看, 也无法访问 // 在@implementation中定义的私有变量只能在本类中访问(私有变量:private修饰,.m文件中写) double _score;}- (void)test{ NSLog(@"score = %f", _score);}@end
//// main.m#import#import "Person.h"int main(int argc, const char * argv[]) { Person *p = [Person new]; // 无论使用什么成语变量修饰符修饰成员变量, 我们都可以在其它类中看到这个变量 // 只不过有得修饰符修饰的变量我们不能操作而已// p->_age; // p->_height;// p->_name; NSLog(@"%f",p->_weight);// [p test]; /* id pp = [Person new]; [pp test]; [p performSelector:@selector(test)]; */ return 0;}