class Point{
double x = 5.0;
double y = 5.0;
double z = 5.0; Point(double _x, double _y, double _z){
x = _x ;
y = _y ;
z = _z ;
} public void setX(double _x){
x = _x ;
}
public void setY(double _y){
y = _y ;
}
public void setZ(double _z){
z = _z ;
}
double getDistance(Point p){
return (x + y + z) ;
}
}
public class Test{
public static void main(String args []){
Point p = new Point(6.0, 6.0, 6.0) ;
Point p1 = new Point(2.0, 8.0, 2.0) ;
System.out.println(p.getDistance(p1)) ;
//这里很奇怪,p调用了getDistance方法,并且传了对象P1给方法,但
//getDistacne方法是用的不是p1对象的x,y,z而是P的x,y,z。 //p.setX(5.0) ;
//System.out.println(p.getDistance(new Point(12.0, 12.0, 12.0))) ;
}
}
double x = 5.0;
double y = 5.0;
double z = 5.0; Point(double _x, double _y, double _z){
x = _x ;
y = _y ;
z = _z ;
} public void setX(double _x){
x = _x ;
}
public void setY(double _y){
y = _y ;
}
public void setZ(double _z){
z = _z ;
}
double getDistance(Point p){
return (x + y + z) ;
}
}
public class Test{
public static void main(String args []){
Point p = new Point(6.0, 6.0, 6.0) ;
Point p1 = new Point(2.0, 8.0, 2.0) ;
System.out.println(p.getDistance(p1)) ;
//这里很奇怪,p调用了getDistance方法,并且传了对象P1给方法,但
//getDistacne方法是用的不是p1对象的x,y,z而是P的x,y,z。 //p.setX(5.0) ;
//System.out.println(p.getDistance(new Point(12.0, 12.0, 12.0))) ;
}
}
return (x + y + z) ; // 你写的不就是p1的x,y,z吗? 要用p的应该p.x + p.y + p.z
}
return ( p.x +p.y + p.z) ;
}
这样就没问题了
因为double getDistance(Point p){
return (x + y + z) ;
}
方法中就没有用到传入Point对象p,而引用的x、y、z的值只为调用该方法的对象的属性x、y、z的值;
如果你想返回的结果为传入对象x、y、z之和,必须指明
double getDistance(Point p){
return ( p.x +p.y + p.z) ;
}
这句话 你创建的是 p 的对象 ,那些 x,y,z 出创建p时传入的值,而p1也只是一个方法的参数而已,
你若想返回 p1 的 x,y,z
在 Point 中的
double getDistance(Point p){
return (p1.x + p1.y + p1.z) ;
} 就行了