關於“在本類中訪問本類私有靜態變量”的一點疑惑解析
代碼如下:
public class StaticVar {
private static int x = 100;
public static void main(String[] args) {
StaticVar var1 = new StaticVar();
var1.x++;
StaticVar var2 = new StaticVar();
var2.x++;
StaticVar.x++;
System.out.println(x);// 103
}
}
疑惑:爲什麼 " var1 "、" var2 "、" StaticVar " 都可以訪問 x ?
解析:雖然 " var1.x "、" var2.x "、" StaticVar.x " 訪問 x 的形式不同,但是它們本質上都是在 StaticVar 類中訪問 StaticVar 的 x ,符合 “私有變量只能在本類中訪問” 的原則,所以代碼可以這麼寫。