利用java程序给point类添加以下几个求两点间距的多态方法class Point{ int x;int y; public Point (int x,int y){ this.x=x;this.y=y;}}
时间: 2023-06-11 22:06:16 浏览: 60
可以添加以下几个求两点间距的多态方法:
1. 使用直线距离公式求解两点间距离:
```
public double distance(Point p) {
return Math.sqrt(Math.pow(this.x - p.x, 2) + Math.pow(this.y - p.y, 2));
}
```
这个方法接受一个 Point 参数,并返回当前点和传入点之间的距离。
2. 使用曼哈顿距离公式求解两点间距离:
```
public double distance(Point p) {
return Math.abs(this.x - p.x) + Math.abs(this.y - p.y);
}
```
这个方法同样接受一个 Point 参数,并返回当前点和传入点之间的曼哈顿距离。
3. 使用切比雪夫距离公式求解两点间距离:
```
public double distance(Point p) {
return Math.max(Math.abs(this.x - p.x), Math.abs(this.y - p.y));
}
```
这个方法同样接受一个 Point 参数,并返回当前点和传入点之间的切比雪夫距离。
注意,这三个方法使用了不同的距离公式,因此得到的距离可能不同。在实际应用中需要根据具体情况选择合适的距离公式。
相关问题
利用java程序给point类添加以下几个求两点间距的多态方法
可以给Point类添加以下几个求两点间距的多态方法:
1. 计算两点间的欧几里得距离:
```
public double distance(Point p) {
double dx = this.x - p.x;
double dy = this.y - p.y;
return Math.sqrt(dx*dx + dy*dy);
}
```
2. 计算两点间的曼哈顿距离:
```
public double manhattanDistance(Point p) {
double dx = Math.abs(this.x - p.x);
double dy = Math.abs(this.y - p.y);
return dx + dy;
}
```
3. 计算两点间的切比雪夫距离:
```
public double chebyshevDistance(Point p) {
double dx = Math.abs(this.x - p.x);
double dy = Math.abs(this.y - p.y);
return Math.max(dx, dy);
}
```
这三个方法都是多态方法,因为它们都接受一个Point对象作为参数,并且返回一个double类型的值,可以根据需要进行重载。
利用java的程序给point类添加以下几个求两点间距的多态方法
可以在Point类中添加以下多态方法来计算两点之间的距离:
```java
public class Point {
private double x;
private double y;
// 构造方法
public Point(double x, double y) {
this.x = x;
this.y = y;
}
// 获取x坐标
public double getX() {
return x;
}
// 获取y坐标
public double getY() {
return y;
}
// 计算两点之间的欧几里得距离
public static double distance(Point p1, Point p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return Math.sqrt(dx * dx + dy * dy);
}
// 计算两点之间的曼哈顿距离
public static double distance(Point p1, Point p2, String distanceType) {
if (distanceType.equals("manhattan")) {
double dx = Math.abs(p1.x - p2.x);
double dy = Math.abs(p1.y - p2.y);
return dx + dy;
} else {
return distance(p1, p2);
}
}
}
```
其中,`distance` 方法计算两点之间的欧几里得距离,`distance` 方法还可以根据传入的 `distanceType` 参数来计算两点之间的曼哈顿距离。如果 `distanceType` 为 `manhattan`,则计算曼哈顿距离;否则,计算欧几里得距离。