Bri*_*ian 24 java methods static access-modifiers instance-variables
我想知道非静态方法如何修改静态实例变量.我知道静态方法只能访问其他静态方法和静态变量.但是,另一方是真的吗?非静态方法可以只访问非静态变量吗?例如:
public class SampleClass {
private static int currentCount = 0;
public SampleClass() {
currentCount++;
}
public void increaseCount() {
currentCount++;
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码编译,我想知道为什么在静态访问权限方面.
Bri*_*ian 38
我从The Java Tutorials中找到了这个
所以答案是肯定的,非静态方法可以修改静态变量
Rob*_*ell 17
不,任何非静态方法都可以访问静态成员.唯一的方法是假如果非静态上下文不能访问静态成员(例如,静态成员对类是私有的,而非静态代码不在该类中).存在静态变量以提供实例自由变量/方法,例如,如果我们有一个Game类和一个highscore变量,则highscore将是静态的(可以在没有实例的情况下访问),并且在每个游戏之后(Game类的一个实例)如果我们的分数高于高分,我们可以改变非静态背景的高分.