2 qq 30137777 qq_30137777 于 2016.01.17 09:59 提问

IDE运行时,报错的问题

class Point{
private double x;
private double y;

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

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

double getX(){
    return x;
}
double getY(){
    return y;
}

}

class Circle{
Point o;
double radius;

Circle(Point p, double r){
    o = p;
    radius = r;
}
Circle(double r){
    o = new Point(0.0,0.0);
    radius = r;
}

void setO(Point p){
    o = p;
}
void setRadius(double r){
    radius = r;
}

Point getO(){
    return o;
}
double getRadius(){
    return radius;
}

boolean contaons(Point p){
    double x = o.getX() - p.getX();
    double y = o.getY() - p.getY();
    if (x*x + y*y > radius*radius) return false;
    else return true;
}

double area(){
    return 3.14*radius*radius;
}

}
public class TestCircle {

public static void main(String[] args) {
    Circle c1 = new Circle(new Point(3.0,4.0),2.0);
    Circle c2 = new Circle(4.0);
    System.out.println("c1的圆心坐标,半径分别是:"+"("+c1.getO().getX()+","+c1.getO().getY()+")"+";"+c1.getRadius());
    System.out.println("c2的圆心坐标,半径分别是:"+"("+c2.getO().getX()+","+c2.getO().getY()+")"+";"+c2.getRadius());
    System.out.println("c1's area is "+c1.area());
    System.out.println("c2 's area is "+c2.area());
    c1.getO().setX(6.0);
    System.out.println("修改后c1的坐标为:"+"("+c1.getO().getX()+","+c1.getO().getY()+")");
    System.out.println("修改后c1的面积:"+c1.area());
    Point p = new Point(1.0,3.0);
    System.out.println("点()是否在圆c1中"+c1.contaons(p));
}

}


```这一段代码,在控制台编译没有报错,正确输出,但是在eclipse中运行时报错,说Exception in thread "main" java.lang.NoSuchMethodError: Point.<init>(DD)V
    at TestCircle.main(TestCircle.java:66)
这个错误,怎么回事呢?
![图片说明](http://img.ask.csdn.net/upload/201601/17/1453016970_183892.png)

2个回答

91program
91program   Ds   Rxr 2016.01.17 10:15

66行,是那一行呢?出错信息已经说明是66行的问题,你能标明这一行不

qq_30137777
qq_30137777 那怎么检查eclipse的环境?
接近 2 年之前 回复
91program
91program 回复4393Z: 你在控制台编译正常输出的代码,应该是没有问题;所以只能说是环境的问题,再加上下面有人也验证了可以输出结果。
接近 2 年之前 回复
qq_30137777
qq_30137777 eclipse环境?怎么验证?是验证jdk环境还是?jdk环境是对的,我在控制台编译这段代码,正常输出。但是在eclipse就不行。
接近 2 年之前 回复
91program
91program 回复4393Z: 我是没有看到什么明显的错误,你再对Ecplise 的环境进行验证。
接近 2 年之前 回复
qq_30137777
qq_30137777 main方法的第一行,new一个c1对象那一行
接近 2 年之前 回复
qq_30137777
qq_30137777 main方法的第一行,new一个c1对象那一行
接近 2 年之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.17 14:44

不是吧,我测试了你的代码了,如果写在Eclipse环境中,新建三个类Circle,Point ,TestCircle,拷贝了你的代码后能够正常运行的结果为:

 c1的圆心坐标,半径分别是:(3.0,4.0);2.0
c2的圆心坐标,半径分别是:(0.0,0.0);4.0
c1's area is 12.56
c2 's area is 50.24
修改后c1的坐标为:(6.0,4.0)
修改后c1的面积:12.56
点()是否在圆c1中false

我的环境是jdk1.8 Eclipse Mars Release (4.5.0),代码没有问题的。

qq_30137777
qq_30137777 没有了,这就是一个完整的代码,上面有,是因为eclipse窗口太小,没法全部展示完。我已经把代码全部贴到问题中了,并且,在我电脑上的eclipse中,一个像我提的问题这样,有两到三个类的,都会提示说错误,但是,我这些代码在控制台编译,没有提示错误,正常运行。只有有一个类的,才能在eclipse运行,不提示错误。
接近 2 年之前 回复
qq_30137777
qq_30137777 没有了,这就是一个完整的代码,上面有,是因为eclipse窗口太小,没法全部展示完。我已经把代码全部贴到问题中了,并且,在我电脑上的eclipse中,一个像我提的问题这样,有两到三个类的,都会提示说错误,但是,我这些代码在控制台编译,没有提示错误,正常运行。只有有一个类的,才能在eclipse运行,不提示错误。
接近 2 年之前 回复
wojiushiwo945you
wojiushiwo945you 回复4393Z: 你这个TestCircle类上面还有什么代码么?我看到上面还有其他代码,不介意的话也贴出来呗。
接近 2 年之前 回复
qq_30137777
qq_30137777 我用的是jdk1.8.0_45 eclipse Mars Release(4.5.1),运行时,是这样仍然是那个错误,我马上把截图更新到问题中。我的IDE是java EE for Web developers.
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!