classPoint{
doublex,y,z;
Point(double_x,double_y,double_z){
x=_x;
y=_y;
z=_z;
}
voidsetX(double_x){
x=_x;
}
doublegetDistance(Pointp){
return(x-p.x)*(x-p.x)(y-p.y)*(y-p.y)(z-p.z)*(z-p.z);
}
}
publicclassTestPoint{
publicstaticvoidmain(String[]args){
Pointp=newPoint(1.0,2.0,3.0);
Pointp1=newPoint(0.0,0.0,0.0);
System.out.println(p.getDistance(p1));
p.setX(5.0);
System.out.println(p.getDistance(newPoint(1.0,1.0,1.0)));
}
}
上面程序Pointp=newPoint(1.0,2.0,3.0);
Pointp1=newPoint(0.0,0.0,0.0);
System.out.println(p.getDistance(p1));中输出的那个方法(x-p.x)*(x-p.x)(y-p.y)*(y-p.y)(z-p.z)*(z-p.z);中x的值不是p1的0.0的原因是因为方法前有个p.么引用了里面的p的x值1.0么,假如我在这方法的定义前加了static去定义,相当于全部都可引用这个方法的时候,我还能怎么用那个P里的x,按照了定义不用加P.,引用的x不就是上一步用的0.0么,那我还可以怎么做。顺便帮忙解释一下doublegetDistance(Pointp){
return(x-p.x)*(x-p.x)(y-p.y)*(y-p.y)(z-p.z)*(z-p.z);
}
这个方法的内容吧,还是有点不理解
|