在 Java 普通實例方法(非 static)中,雖然方法簽名沒有參數,但 JVM 實際上會隱式傳遞一個 this 參數,指向調用該方法的當前對象實例。
// 源碼
class A {
private int x;
public void foo() {
this.x = 123;
}
}
// 編譯器實際生成的結構(概念上)
class A {
private int x;
public void foo(A this) { // 隱式參數
this.x = 123;
}
}
obj.foo() 時,JVM 將 obj 的引用壓入棧幀的局部變量表第 0 位(this)。this.field 明確指向實例字段。return this; 支持 Builder 模式等流式 API。OuterClass.this 區分多層嵌套場景。this。super 用於調用父類構造器/方法,非引用變量。this 增加可讀性。this 逃逸(對象未完全初始化即被外部持有)。Outer.this。理解 this 是隱式參數,有助於深入掌握 Java 實例方法調用的底層模型。