如果用户希望这样做,我希望能够在程序中调整点击间隔,此时类ClickAdjustmentFrame
将被实例化。
CLICK_FREQUENCY
在唯一可以更改其值的类中进行初始化似乎是明智的。所以这堂课是这样开始的:
public class ClickAdjustmentFrame {
static int CLICK_FREQUENCY = ((Integer)Toolkit.getDefaultToolkit()
.getDesktopProperty("awt.multiClickInterval"));
因为该类并不总是被实例化,所以该类现在CLICK_FREQUENCY
从 GUI 类中导入 的值,我在其中移动了相关语句。(即,GUI 现在开始是这样的:)
public class GUI {
static int CLICK_FREQUENCY = ((Integer)Toolkit.getDefaultToolkit()
.getDesktopProperty("awt.multiClickInterval"));
Toolkit
但是在进行更改之前,在调试期间,即使ClickAdjustmentFrame
没有实例化,似乎也正在调用。起初这并不奇怪。然后我开始质疑设计,因此将调用转移Toolkit
到 GUI。
就我的应用程序而言,这不再重要,但出于记录和教育目的,如果在Toolkit
其他任何地方都没有进行调用,那么CLICK_FREQUENCY
即使上课ClickAdjustmentFrame
(如图所示下面)没有实例化?
public class ClickAdjustmentFrame {
static int CLICK_FREQUENCY = ((Integer)Toolkit.getDefaultToolkit()
.getDesktopProperty("awt.multiClickInterval"));
...
我知道我可以调用static
非实例化类中的方法(并且经常这样做),但这是关于通过调用其他地方的方法来初始化static
变量。static
究竟什么非常基本的原则适用于这里?是否任何类的所有static
成员都可用于包中的其他类?
也许一个更好的问题是:将调用移Toolkit
回是否更明智(更好的设计) ClickAdjustmentFrame
,唯一CLICK_FREQUENCY
可以更改值的类?