利用java程序给point类添加以下几个求两点间距的多态方法
时间: 2023-06-11 20:06:53 浏览: 144
可以在 Point 类中添加以下多态方法:
```
public class Point {
private double x;
private double y;
// 构造方法
public Point(double x, double y) {
this.x = x;
this.y = y;
}
// 普通方法
public double distance(Point other) {
double dx = x - other.x;
double dy = y - other.y;
return Math.sqrt(dx * dx + dy * dy);
}
// 多态方法,求两点间距离
public double distance(Point p1, Point p2) {
return p1.distance(p2);
}
// 多态方法,求两点间距离的平方
public double distanceSquared(Point p1, Point p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return dx * dx + dy * dy;
}
// 多态方法,求两点间曼哈顿距离
public double manhattanDistance(Point other) {
double dx = Math.abs(x - other.x);
double dy = Math.abs(y - other.y);
return dx + dy;
}
}
```
在上面的代码中,我们添加了三个多态方法:
- `distance(Point p1, Point p2)`:求两点间距离,调用实例方法 `distance(Point other)`。
- `distanceSquared(Point p1, Point p2)`:求两点间距离的平方,直接计算。
- `manhattanDistance(Point other)`:求两点间曼哈顿距离,直接计算。
这些方法可以通过以下方式调用:
```
Point p1 = new Point(1, 2);
Point p2 = new Point(3, 4);
double d = p1.distance(p2); // 调用实例方法
double d2 = Point.distance(p1, p2); // 调用静态方法
double dsq = Point.distanceSquared(p1, p2); // 调用静态方法
double manhattan = p1.manhattanDistance(p2); // 调用实例方法
```
阅读全文