問題タブ [this-keyword]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaの「this」変数は実際に現在のオブジェクトにどのように設定されていますか?
検討:
同様の質問が寄せられていることは知っていますが、Java の「this」変数についてしっかりと理解することはできませんでした。
上の画像の結果をどのように理解するかを説明してみましょう。
メソッドを
new TestChild()呼び出すのはオブジェクトであるため、6 行目の変数はオブジェクトに設定されます - デバッガーによると {TestChild@428}。printName()thisTestChildただし、Javaには仮想フィールドがないため、これが何を意味するのか完全にはわかりませんが、ポリモーフィズムをサポートするJavaメソッドの反対であると概念的に理解しています-コンパイル時
this.iに100に設定されます。TestParentしたがって
this、メソッドthis.i内TestParentは常にクラス内のi変数になります。TestParent
私の理解が正しいかどうか確信が持てないので、間違っている場合は修正してください。
また、私の主な質問は、
thisメソッドを呼び出している現在のオブジェクトに変数がどのように設定されているか? 実際にどのように実装されていますか?