我正在使用applet创建一个在线测试Web项目。我想声明一个int
类型的变量,它跟踪正确答案的数量。那么需要声明的变量在哪里才能在所有帧中访问?
答案 0 :(得分:2)
正如其他人所提到的,您可以使用public static
声明全局变量:
public class MyClass {
public static int globallyVisibleInt = ...;
// or
private static int visibleThroughAccessors = ...;
public static void messWithGlobalState(int newValue) {
visibleThroughAccessors = newValue;
}
public static int seeGlobalState() {
return visibleThroughAccessors;
}
}
然后,要访问和使用此变量,任何其他代码只需导入此类:
// this code is inside another class and package
MyClass.globallyVisibleInt++;
// or
MyClass.messWithGlobalState(14);
但是,这种全局变量的使用通常不受欢迎。 OOP为您提供了许多处理问题的工具,您可能不需要针对这种特定情况的全局变量。 / p>
Here's关于避免全局变量的好文章 - 为什么以及如何。讨论:
与所有HeuristicRules一样,这不是100%适用的规则。当代码不使用全局变量时,代码通常更清晰,更容易维护,但也有例外。它在精神上与GotoConsideredHarmful相似,尽管使用全局变量不太可能让你成为一个顽固的黑客。
为什么在不必要时应避免使用全局变量:
全球变量的替代方案:
答案 1 :(得分:1)
java中没有全局变量。您可以使用公共静态访问器
在某个类或私有静态字段中声明公共静态字段答案 2 :(得分:1)
在OOP中没有全局变量,但您可以声明一个公共静态变量。但这不是好习惯!您应该研究如何在您的情况下处理它并找到另一种方式。