初学者的java有关问题

菜鸟的java问题~
import acm.graphics.*;
import acm.program.*;
public class Practice extends GraphicsProgram {
private GOval ball;
public void run(){

GOval ball=new GOval(100,100);
add(ball,10,10);
while(ball.getX<getWidth()){
moveBall();

pause(50);


}
}


private void moveBall() {
// TODO Auto-generated method stub
ball.move(x,y);
}
private static final int x=10;
private static final int y=10;

}
求这个程序错误点。。。。

------解决方案--------------------
GOval ball=new GOval(100,100);
每次ball都是new出来的,所以while(ball.getX<getWidth()){你这句话始终都是真的,估计会无限循环导致内存溢出
因为你在外面已经定义了ball,所以里面把run()方法中的
GOval ball=new GOval(100,100);
改为:
ball=new GOval(100,100);