我是初学者,我写了这段代码:
#import <Foundation/Foundation.h>
@interface XYPoint : NSObject {
int pointX;
int pointY;
}
- (void) print;
- (void) setX: (int) x;
- (void) setY: (int) y;
@end
@implementation XYPoint
-(void) print {
NSLog(@"X is %i and Y is %i", pointX, pointY);
}
-(void) setX: (int) x {
pointX = x;
}
-(void) setY: (int) y {
pointY = y;
}
@end
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
XYPoint *myCord = [[XYPoint alloc] init];
[myCord setX: 4];
[myCord setY: 6];
[myCord print];
[myCord release];
[pool drain];
return 0;
}
我需要帮助的是我不能为我的生活理解“pointX”与setX和“x”之间的关系
答案 0 :(得分:1)
PointX
被称为实例变量 - 这在大多数其他语言中称为私有类级变量。它表示您的类需要在内部存储的一条信息,默认情况下不会暴露给系统中的其他对象。
setX
是您显式创建的方法,允许其他对象将值分配给私有PointX
实例变量。 x
是外部调用对象传递给setX
方法的参数。
请注意,公开对私有实例变量的访问的最常用方法是使用已定义的属性。在您的情况下,您可以在界面中添加类似的内容:
@property (nonatomic) int PointX;
然后在您的实现中:
@synthesize PointX;
此语法允许您(有效地)直接访问PointX
实例变量,方法是自动创建具有相同名称的包装器属性(使用匹配的-get和-set方法)。