java - 在 java 中将全局变量放在哪里有关系吗?

标签 java variables

这可能是一个基本问题,但我想澄清我的一些困惑。将全局变量放在哪里有什么关系吗?例如;

int globalVariable = 3;

//Some Method here which DOES NOT use the globalVariable

不同于:

//Some methods here which don't use the globalVariable

int globalVariable = 3

//Some methods here which use the globalVariable

最佳答案

类中字段声明的相对位置在两种情况下相关:

  • 该字段在其他字段的初始化表达式中被引用 - 在这种情况下,被引用的字段必须在引用它的字段之前声明;否则,代码将不会编译并出现“非法前向引用”错误。对于从放置在字段声明 ( demo ) 前面的匿名初始化 block 引用的字段,上述情况也适用。
  • 字段初始值设定项有副作用 - 在这种情况下,将初始值设定项放在其他初始值设定项之前或之后会更改副作用的顺序。

这是第二点的说明:

class Test {
    int a = foo("hello");
    int b = foo("world");
    static int foo(String s) {
        System.out.println(s);
        return 3;
    }
}

上面的打印

hello
world

每次构建Test对象时。如果将 a 的声明移到 b 的声明之后,打印输出将更改为

world
hello

关于java - 在 java 中将全局变量放在哪里有关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39042953/

相关文章:

javascript - 为什么常量的属性或值不是常量

java - Junit实例创建分别通过方法或类

java - 从 JAVA 内部强制重新加载 JAVA WAR

java - 我如何停止播放声音? -Java

java - 布局未显示为图形布局中所示?

匿名函数中的 PHP 变量

java - 在 WSL 上运行 Kafka 并在 Windows 上创建生产者

java - Checkstyle 在最终变量的命名约定上与普通 Java 不同?

python - 另一个 Python 变量范围问题

iPhone SDK 非原子和原子