我想知道非静态方法如何修改静态实例变量。我知道静态方法只能访问其他静态方法和静态变量。但是,对方是真的吗?非静态方法可以只访问非静态变量吗?例如:非静态方法可以修改静态变量
public class SampleClass {
private static int currentCount = 0;
public SampleClass() {
currentCount++;
}
public void increaseCount() {
currentCount++;
}
}
此代码编译,我想知道为什么在静态访问privledges方面。
你尝试了吗? –
@Marco是的,它编译。只是想知道人们是否在任何地方记录了这一点,以及我的推理是否正确。 –
静态方法不能修改实例变量并不是真的。只是他们没有任何隐含的“这个”引用。你可以写'class Ex {private int x; static void fn(Ex ex){ex.x = 12; }}。顺便说一句:可变静力学通常是一个坏主意。 –