我对java(以及一般的编程)非常陌生,我试图创建一个简单地在屏幕中心绘制垂直线的程序。为此,我创建了一个变量x
,它给出了屏幕中心的x坐标。我希望能够在其他私有方法中使用此变量。但是,当我运行代码时,不会显示任何行,就像x
设置为0一样。
import acm.graphics.*;
import acm.program.*;
import java.awt.*;
public class Target extends GraphicsProgram {
int x = getWidth()/2;
public void run() {
GLine line = new GLine (x,0,x,300);
add (line);
}
}
如果我将变量x
放在run()
方法中,如下所示,该行正确绘制,但后来我无法在其他私有方法中使用它,因为这是我的理解然后变量将不再是类变量,而是一个实例变量,因此只能由run()
访问而没有其他方法?
public class Target extends GraphicsProgram {
public void run() {
int x = getWidth()/2;
GLine line = new GLine (x,0,x,300);
add (line);
}
}
有人可以告诉我为什么第一个代码不起作用而第二个代码不起作用? 非常感谢你提前!
答案 0 :(得分:0)
在第一个版本中getWidth()
在实例初始化期间被调用,窗口的边界可能尚未设置。所以它仍然有效,但方法返回0,你可能不会在屏幕上看到这条线。