日期:2014-05-20  浏览次数:20709 次

求助呀 小弟刚开始学java 这段代码哪里有问题呀
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)
求助各位大牛

------解决方案--------------------
在我的eclipse运行是正常的.
------解决方案--------------------
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;试试呢?
------解决方案--------------------
LZ不是用eclipse编的吧?
怀疑你的类没有编译过
用过javac Test.java
编译成功了吗?
------解决方案--------------------
不是用工具的话要先生成.class文件
------解决方案--------------------
代码没问题。怀疑像楼上所说,楼主没编译。
------解决方案--------------------
引用:
我是直接用eclipse的

那你怎么运行的?
------解决方案--------------------
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)));
}
}
马士兵源代码,看不出你哪里错了。