public class Test {
public static int staticVar = 0;
public int instanceVar = 0;
public Test() {
staticVar++; // 合法
instanceVar++; // 合法
System.out.println(staticVar + ", " + instanceVar);
}
}| 調用者 \ 被調用 | 靜態變量/方法 | 實例變量/方法 |
|---|---|---|
| 靜態方法 | ✅ 允許 | ❌ 禁止(無 this 引用) |
| 實例方法(含構造函數) | ✅ 允許 | ✅ 允許 |
this 參數),在對象創建過程中調用,自然擁有訪問類級別靜態成員的權限。this,不知操作哪個對象的實例成員,故編譯報錯。「只有靜態方法才能調用靜態變量」——錯誤。實例方法完全可以調用靜態變量,且是常見模式(如單例計數器、共享配置)。
static { } 或懶加載。