クラス名.thisについて
ローカル変数とフィールドで名前がかぶっている場合
this.hogeとして自身のクラスのフィールドにアクセスできる。
ところで以下のような場合を考えてもらいたい
hogeMethodからhogeフィールドにはthis.hogeでアクセスできる。
class A {
private int hoge;public void hogeMethod() {
int hoge;B = new B() {
public void hogeInner() {
int hoge;System.out.println(○○);
}
}
}
では匿名インナークラスとして作成したB#hogeInner()からAクラスのhoge
にアクセスしたい場合はどのようにすあれよいか。
答えは
A.this.hoge
である。
ちなみに
Bクラスにhogeというフィールドがあった場合は
this.hoge
hogeMethodのローカル変数hogeにはjavaの文法上アクセスできない
(ただしhogeが定数の場合は除く)