第三章的课后题多半都比较主观,在此只分享第七题。第七题几乎囊括了第三章所有的知识点,非常典型。
以下是题目和本人编写的代码。为了方便起见,将头文件,实现文件,主函数文件合并到了一起。
3-7 定义一个名为XYPoint的类,用来保存笛卡尔坐标(x,y),其中x和y均为整数。定义一些方法,分别用来设置点的坐标x和y,并检查他们的值。编写一个Objective-C程序,实现这个新类并测试它。
#import <Foundation/Foundation.h>
@interface XYPoint : NSObject
{
int xPoint; //实例变量
int yPoint;
}
//设值函数
-(void) setXPoint: (int) x; //x坐标
-(void) setYPoint: (int) y; //y坐标
//取值函数
-(int) xPoint; //返回x坐标
-(int) yPoint; //返回y坐标
//打印函数
-(void) print;
@end
@implementation XYPoint
-(void) setXPoint: (int) x
{
xPoint = x;
}
-(void) setYPoint: (int) y
{
yPoint = y;
}
-(int) xPoint
{
return xPoint; //返回xPoint值
}
-(int) yPoint
{
return yPoint; //返回yPoint值
}
-(void) print
{
NSLog(@"The point is: (%d, %d)", xPoint,yPoint);
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
XYPoint *myPoint_1 = [[XYPoint alloc] init]; //第一个坐标
XYPoint *myPoint_2 = [[XYPoint alloc] init]; //第二个坐标
[myPoint_1 setXPoint:3];
[myPoint_1 setYPoint:1];
[myPoint_2 setXPoint:4];
[myPoint_2 setYPoint:5];
NSLog(@"The xPoint of the first point is %d:", [myPoint_1 xPoint]);
NSLog(@"The first point is:");
[myPoint_1 print];
NSLog(@"The second point is:");
[myPoint_2 print];
}
return 0;
}
本人此程序新建了两个对象(坐标),并分别提取了坐标值。
此程序应用了非常典型的设值和取值方法:
-(void) setXPoint: (int) x
{
xPoint = x;
}
-(void) setYPoint: (int) y
{
yPoint = y;
}
-(int) xPoint
{
return xPoint;
}
-(int) yPoint
{
return yPoint;
}
在后面的章节中,还会介绍通过设置属性来替代传统的设置取值方法。