クラス名.thisについて

ローカル変数とフィールドで名前がかぶっている場合
this.hogeとして自身のクラスのフィールドにアクセスできる。

ところで以下のような場合を考えてもらいたい


class A {
private int hoge;

public void hogeMethod() {
int hoge;

B = new B() {
public void hogeInner() {
int hoge;

System.out.println(○○);
}
}
}

hogeMethodからhogeフィールドにはthis.hogeでアクセスできる。
では匿名インナークラスとして作成したB#hogeInner()からAクラスのhoge
にアクセスしたい場合はどのようにすあれよいか。

答えは
A.this.hoge
である。

ちなみに
Bクラスにhogeというフィールドがあった場合は
this.hoge
hogeMethodのローカル変数hogeにはjavaの文法上アクセスできない
(ただしhogeが定数の場合は除く)