class Point {
double x,y,z;

Point(double x1,double y1,double z1) {
x= x1;
y= y1;
z= z1;
}

void setX (double x1) {
x=x1;
}

double getDistance (Point p) {
return (x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z);
}
}
public class Test {
public static void main (String[] args){
Point p=new Point(1.0 , 2.0 , 3.0) ;
Point p1=new Point (2.0 , 3.0 , 4.1);
System.out.println(p.getDistance(p1));

}
}看马士兵老师的视频的时候有段这个代码  打出来但是总是错误 
Exception in thread "main" java.lang.NoSuchMethodError: Point.<init>(DDD)V
at Test.main(Test.java:20)
求助各位大牛

解决方案 »

  1.   

    oSuchMethodError这个错误是说找不到调用的那个方法,也就是你的方法名写错了或是参数传错了。你需要告诉我你的Test.java的第20行是什么代码?
    System.out.println(p.getDistance(p1));
    这个吗?如果是这个应该是你
    double getDistance (Point p) {
    return (x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z);
    }
    这里写错了,
    你直接return 0.0d;试试呢?
      

  2.   

    LZ不是用eclipse编的吧?
    怀疑你的类没有编译过
    用过javac Test.java
    编译成功了吗?
      

  3.   

    不是用工具的话要先生成.class文件
      

  4.   

    第一行说有错误……   已定义类型point
      

  5.   

    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;
    }

    double 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.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)));
    }
    }马士兵源代码,看不出你哪里错了。
      

  6.   

    知道了  我原来还搞过一个point  重复了吧……我换了一个就好了
      

  7.   

    我也碰到这问题,似乎是新版的jdk没有导入Point类(import java.awt.*;没有导入它下级的Point),加上import java.awt.Point; 这句话就好了。