我想知道一个非静态方法如何修改一个静态变量。我知道静态方法只能访问其他静态方法和静态变量。但是,另一面是否正确?非静态方法只能访问非静态变量吗?例如:
public class SampleClass {
private static int currentCount = 0;
public SampleClass() {
currentCount++;
}
public void increaseCount() {
currentCount++;
}
}
这段代码可以编译,我想知道它在静态访问权限方面的原因。
class Ex { private int x; static void fn(Ex ex) { ex.x = 12; } }
。顺便说一句,可变的静态变量通常是一个坏主意。 - Tom Hawtin - tackline