Hi, The following program prints 0, then 3. Can anyone explain why the inner class in method() uses field 'x', while method1() uses parameter 'x'? Is this case well-defined by the Java spec? Thanks, Shlomy public abstract class A implements Runnable { public int x = 0; public static void method(final int x) { A a = new A() { public ...