1

我正在制作一个用于移动球的简单程序,但不幸的是它没有移动,当我在运行程序后输入值 x=5 和 y=4 时,它在控制台上显示“Ball @ (0.0,0.0)”请帮助我的在哪里错误。

public class Ball
{
    private double x,y; //private variables...

//creating constructors..
public void Ball(double x, double y)
{
    this.x=x;
    this.y=y;
}
public void Ball()
{
    x=5.0;
    y=4.0;
}
//getter and setter for private variables....
public double getX()
{
    return x;
}
public void setX()
{
    this.x=x;
}
public double getY()
{
    return y;
}
public void setY()
{
    this.y=y;
}
public void setXY(double x, double y)
{
    this.x=x;
    this.y=y;
}
public void move(double Xdisp, double Ydisp)
{
    x+=Xdisp;
    y+=Xdisp;
}
public String toString()
{
    return "Ball @ ("+x+","+y+")";
}
public static void main(String[] args)
{
    Ball b=new Ball();
    System.out.println(b);
}

}

4

3 回答 3

1

从允许和被赋值的构造函数中删除void关键字Ballxy

public Ball() {
    x = 5.0;
    y = 4.0;
}
于 2013-10-07T10:02:20.033 回答
1

您没有任何构造函数,因此调用了默认构造函数,它对xand没有任何作用y

为了得到你想要的,你应该提供一个构造函数(你快到了),只需删除void修饰符:

公共无效球()

现在,这是一个构造函数。请注意,您应该对另一个预期的构造函数执行相同的操作。

于 2013-10-07T10:03:10.720 回答
0

public void Ball()必须是构造函数。

public Ball()
{
    x=5.0;
    y=4.0;
}

但是你写的是一种方法。set方法中也没有参数,必须像

public void setX(double x)
{
    this.x=x;
}
public void setY(double y)
{
    this.y=y;
}
于 2013-10-07T10:04:26.120 回答