// 写了一个Point类
class Point {
double x, y, z;  

Point (double _x, double _y, double _z){
x = _x;
y = _y;
z = _z;
}

void setX(double _x){
x = _x;
}
void setY(double _y){
y = _y;
}
void setZ(double _z){
z = _z;
}

double getDistance(Point p){
return (x - p.x)*(x - p.x)+(y - p.y)*(y - p.y)+(z - p.z);
}
}

public class TestPoint{
public static void main(String args[]){
Point p = new Point(1.0,2.0,3.0);
Point p1 = new Point(0.0,0.0,0.0);
System.out.println(p.getDistance(p1));

p.setX(5.0);
System.out.println(p.getDistance(new Point(1.0,1.0,1.0)));
}
}

解决方案 »

  1.   

    坐标类
    3维的x,y,z
    getDistance(Point p)取得当前对象到点p的距离
      

  2.   

    but i don't know what you said```
      

  3.   

    double getDistance(Point p){
    return (x - p.x)*(x - p.x)+(y - p.y)*(y - p.y)+(z - p.z);
    }
    这方法没看懂 
      

  4.   

    楼主样分析什么?如果是求距离    
    double getDistance(Point p){
    return sqrt((x - p.x)*(x - p.x)+(y - p.y)*(y - p.y)+(z - p.z)*(z-p.z));
    }
      

  5.   

    double getDistance(Point p){
    return (x - p.x)*(x - p.x)+(y - p.y)*(y - p.y)+(z - p.z);
    }
    这个方法是不是写漏了啊??
    有可能是两点之间的距离
      

  6.   

    getDistance(Point p)获得三维坐标下两点之间的距离
    System.out.println(p.getDistance(p1));输出点p(1.0,2.0,3.0)与点p1(0.0,0.0,0.0)之间的距离
    System.out.println(p.getDistance(new Point(1.0,1.0,1.0)));输出点(5.0,2.0,3.0)与点(1.0,1.0,1.0)之间的距离                   
    我不知道你哪儿不理解
      

  7.   


    class Point {
       //定义空间坐标系
       double x, y, z;      Point (double _x, double _y, double _z){
           x = _x;
           y = _y;
           z = _z;
        }   void setX(double _x){
           x = _x;
        }
       void setY(double _y){
           y = _y;
        }
       void setZ(double _z){
           z = _z;
        }   double getDistance(Point p){
        //传入的p1,求p与p1两点之间的距离
           return (x - p.x)*(x - p.x)+(y - p.y)*(y - p.y)+(z - p.z);
        }
    }public class TestPoint{
         public static void main(String args[]){
              //new了一个p,找到带有3个浮点参数的Point构造方法,传入值
              Point p = new Point(1.0,2.0,3.0);
              //new了p1对象为原点
              Point p1 = new Point(0.0,0.0,0.0);
              //p调用getDistance方法,并把p1的值丢进去了
              System.out.println(p.getDistance(p1));          p.setX(5.0);//修改了p的x值 p:(5.0,2.0,3.0)
              //又new了一个对象,但是没有给他定义名称,传入了三个1.0,再来看外面的
               //又跟上面的一样,对象p调用方法getDistance,然后getDistance只能接收对象
               //那么就传入了刚new出来的对象,虽然没有名字,但是可以用来比较
              System.out.println(p.getDistance(new Point(1.0,1.0,1.0)));
         }
    }
      

  8.   

    楼主的代码不对,这个方法有问题,改成这样,然后看17楼的解释,就可以了。
    double getDistance(Point p){
        //传入的p1,求p与p1两点之间的距离
           return sqrt((x - p.x)*(x - p.x)+(y - p.y)*(y - p.y)+(z - p.z)*(z - p.z));
        }
      

  9.   

    纠正一下,sqrt,必须用Math.sqrt来使用,或者你使用静态导入,import static java.Math.*;