我刚开始用Java编写一些学校项目代码。现在我真的被这个任务困住了。 在这个作业中,我必须制作一个Point p并以我呈现的方式获得x和y。但是现在我在运行JUnit测试时得到了一个StackOverflowError(给出了测试)。我不确定我做错了什么,有人可以帮助我吗?
public class Point {
double x;
double y;
public Point (double x1, double y1){
x = x1;
y = y1;
Point p = new Point (2.0, 5.0);
p.getY();
p.getX();
}
public double getY(){
return y;
}
public double getX(){
return x;
}
}
答案 0 :(得分:1)
您在这里不需要您的实例Point p
。
首先,因为这是一个递归方法(这里是构造函数),导致Point
的无限实例化,导致你的StackOverflowError
。
其次,你没有做任何事情,即使没有使用吸气剂。
最后,您可能想要的是将该代码放在public static void main(String[] args)
中以测试您的课程
public static void main(String[] args){
Point p = new Point (2.0, 5.0);
System.out.println( "Y = " + p.getY());
System.out.println( "X = " + p.getX());
}
所以删除构造函数的最后几行
public Point(double x, double y){
this.x = x;
this.y = y;
}