一、设计一个类Point2D,用来表示二维平面中某个点
1> 属性* double x
* double y
2> 方法
* 属性相应的set和get方法
* 设计一个对象方法同时设置x和y
* 设计一个对象方法计算跟其他点的距离
* 设计一个类方法计算两个点之间的距离
3> 提示
* C语言的math.h中有个函数:double pow(double n, double m); 计算n的m次方
* C语言的math.h中有个函数:double sqrt(double n); 计算根号n的值(对n进行开根)
Point2D的声明
#import <Foundation/Foundation.h>
@interface Point2D:NSObject
{
double _x;
double _y;
}
//x的set和get方法
-(void)setX:(double)x;
-(double)getX;
//x的set和get方法
-(void)setY:(double)y;
-(double)getY;
//同时设置x、y
-(void)setX:(double)x andY:(double)y;
//计算跟其他点之间的距离s
-(double)distanceWithOther:(Point2D *)other;
//计算两个点之间的距离
+(double)distanceBetweenPoint:(Point2D *)point1 andpoint2:(Point2D *)point2;
@end
Point2D实现
//
// Point2D.m
// 类练习
//
// Created by Mac on 15/3/12.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#import "Point2D.h"
#import <math.h>
@implementation Point2D
-(void)setX:(double)x
{
_x=x;
}
-(double)getX
{
return _x;
}
-(void)setY:(double)y
{
_y=y;
}
-(double)getY
{
return _y;
}
-(void)setX:(double)x andY:(double)y
{
[self setX:x];
[self setY:y];
}
-(double)distanceWithOther:(Point2D *)other
{
//x1-x2
double xDelta=_x-[other getX];
//x1-x2的平方
double xDeltaPF=pow(xDelta,2);
//y1-y2
double yDelta=_y-[other getY];
//y1-y2
double yDeltaPF=pow(yDelta,2);
//返回距离开根号
return sqrt(xDeltaPF+yDeltaPF);
}
+(double)distanceBetweenPoint:(Point2D *)point1 andpoint2:(Point2D *)point2
{
return [point1 distanceWithOther:point2];
}
@end
主程序
//
// main.m
// 作业求两点
//
// Created by Mac on 15/3/12.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Point2D.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Point2D *p1=[[Point2D alloc]init ];
[p1 setX:3 andY:4];
Point2D *p2=[[Point2D alloc]init ];
[p2 setX:6 andY:8];
double d1=[p1 distanceWithOther:p2];
//计算两点之间的距离
double d2=[Point2D distanceBetweenPoint:p1 andpoint2:p2];
NSLog(@"两点之间的距离是%f",d1);
NSLog(@"两点之间的距离是%f",d2);
}
return 0;
}
结果:
2015-03-13 00:41:24.931作业求两点[748:53287]两点之间的距离是5.000000
2015-03-13 00:41:24.932作业求两点[748:53287]两点之间的距离是5.000000