class Point{
public int x;
public int y;
public int z;
public Point(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
public void setX(int x) {
this.x = x;
}
public void setY(int y) {
this.y = y;
}
public void setZ(int z) {
this.z = z;
}
public int getDistance(Point p) {
return (x - p.x)*(x - p.x) + (y - p.y)*(y - p.y) + (z - p.z)*(z - p.z);
}
}
public class TestPoint {
public static void main(String [] args) {
Point p = new Point(1, 2, 3);
Point p1 = new Point(0, 0, 0);
System.out.println(p.getDistance(p1));
p.setX(5);
System.out.println(p.getDistance(new Point(0, 0, 0)));
}
}
关于 public int getDistance(Point p) {
return (x - p.x)*(x - p.x) + (y - p.y)*(y - p.y) + (z - p.z)*(z - p.z);
}
中的x和p.x; y和p.y;z和p.z总是分不清分别指代的是什么。大神能给我答疑解惑下吗?
这个方法中
public int getDistance(Point p) {
return (x - p.x)*(x - p.x) + (y - p.y)*(y - p.y) + (z - p.z)*(z - p.z);
}
带p就不用解释了吧,就是p的x、y和z。
而这个不带p的,是你使用的对象中参数。
你自己写的测试代码太混乱了,System.out.println(p.getDistance(p1));这句与上面的代码很容易自己搞混了。起名字不要起这些容易混的,建议改成
System.out.println(point1.getDistance(point2));之类的,这样就好解释了,在调用getDistance时,方法中的x就是调用方法的对象的,即point1的,而传入的参数为point2,也就是说方法中的p指代的是point2.
p.x代表的就是getDistance(Point point)方法里的参数p1的x值,x就代表的是你调用这个方法的Point对象p
三维坐标,求出平方和!!