Java FAQ:匿名クラス
Java FAQ:S016 Q-06
class の場合
class C2008053001 { void foo() {} } public class C2008053000 { public static void main(String[] args) { C2008053001 c = new C2008053001() { void foo () { System.out.println("foo"); } }; c.foo(); } }
で、
foo
特異メソッドのようなことにも使えるってこと?
interface の場合
interface C2008053011 { void foo(); } public class C2008053010 { public static void main(String[] args) { C2008053011 c = new C2008053011() { public void foo () { System.out.println("foo"); } }; c.foo(); } }
で、
foo
変数へのアクセス
class C2008053021 { void foo() {} } public class C2008053020 { int x = 1; C2008053021 c; C2008053020() { c = new C2008053021() { void foo () { System.out.println(C2008053020.this.x); } }; c.foo(); } public static void main(String[] args) { new C2008053020(); } }
で、
1