------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、设计一个类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进行开根)
二、代码体现
1、声明
#import <Foundation/Foundation.h>
@interface point2D : NSObject
{
double _x; // x值
double _y; // y值
}
// x的set和get方法
- (void)setX :(double)x;
- (double)getX;
// y的set和get方法
- (void)setY :(double)y;
- (double)getY;
// 同时设置x y的值
- (void)setX:(double)x andY:(double)y;
// 计算跟其他点的距离
- (double)distanceWithOther:(point2D *)other;
// 计算两个点之间的距离
+ (double)distanceBettwenPoint:(point2D *)point1 andPoint:(point2D *)point2;
@end
2、实现
#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);
//调用类方法
//return [point2D distanceBettwenPoint1:self andPoint:other];
}
+ (double)distanceBettwenPoint:(point2D *)point1 andPoint:(point2D *)point2
{
// // x1-x2
// double xDelta=[point1 getX]-[point2 getX];
//
// // (x1-x2)的平方
// double xDeltaPF=pow(xDelta, 2);
//
// // y1-y2
// double yDelta=[point1 getY]-[point2 getY];
//
// // (y1-y2)的平方
// double yDeltaPF=pow(yDelta, 2);
//
// // 返回距离
// return sqrt(xDeltaPF+yDeltaPF);
return [point1 distanceWithOther:point2];
}
@end
3、测试
#import "point2D.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
point2D *P1=[point2D new];
[P1 setX:3 andY:4];
point2D *P2=[point2D new];
[P2 setX:6 andY:8];
double d1=[P1 distanceWithOther:P2];
// 计算两点之间的距离
double d2=[point2D distanceBettwenPoint:P1 andPoint:P2];
NSLog(@"之间的距离为%f",d1);
NSLog(@"两点之间的距离为%f",d2);
// insert code here...
NSLog(@"Hello, World!");
}
return 0;
}
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------