【发布时间】:2014-06-17 16:50:28
【问题描述】:
class Foo {
public Foo() { }
}
class Bar {
static Foo foo = new Foo(); // This is legal...
public static void main(String[] args) {
static int a = 0; // ... But why this is not?
}
}
为什么我们不能在静态函数中声明一个静态变量?
【问题讨论】:
-
为什么这样做有意义?当谈论仅在方法体内部范围内的变量时,说它们是“类级别”是没有意义的。
-
@user3580294 我希望在静态循环中声明一个变量(这不是实际代码),这样它的值就不会随着下一次迭代而改变。
-
所以你想要一个在方法调用中保持其值的变量?这不是
static在 Java 中的含义。不过,我 99% 确定还有一个关于此的问题...... -
Java 的静态变量与 C 中的不同。该语言不是那样制作的。要想得到同样的效果,需要在静态方法之外做一个类变量。
-
静态意味着内存中只存储了一个变量的副本。 final 表示变量永远不会改变。
标签: java