构造函数未定义?

时间:2016-04-26 20:26:38

标签: java constructor

有人可以帮我解决这个错误。我正在尝试自己学习java并且不确定导致错误的原因是什么?

/*
 * Without changing the Point class, add any arguments to the constructor
 * below so that the error goes away.
 */

public Point p04Constructor() {
    return new Point(); 
}

这是Point类:

public class Point {

private int _x;
private int _y;

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

public void move(int dx, int dy) {
    _x = _x + dx;
    _y = _y + dy;
}

public void flip() {
    _x = _y;
    _y = _x;
}

public void setY(int _y) {
    _y = 2;
}

public int getY() {
    return _y;
}

public String toString() {
    return "(" + _x + "," + _y + ")";
}

}

请让我知道你的想法。我已经尝试过做评论中建议的内容并继续出错。

2 个答案:

答案 0 :(得分:1)

添加奥斯汀的答案......

还有其他一些问题......

setY(int y)方法将始终将_y值设置为2而不是方法参数y。

翻转方法不会像您期望的那样工作。一旦_x设置为_y,那么_y将被设置为_x,它只是设置为_y。

没有getX()方法。

答案 1 :(得分:0)

正如评论中的其他人所说,您需要为构造函数传递正确的参数。所以这样的东西应该编译。

 public Point p04Constructor() {
    return new Point(0, 0); 
 }

您需要添加2个int参数,因为您提供给我们的Point类只有一个构造函数,并且需要传递2 int个变量。

public Point(int x, int y) {