Java FAQ:this なしはクラスのメンバ

Java FAQ:S012 Q-11

public class C2008051300 {
    int x;

    void foo(int y) {
        this.x = x;
    }

    public static void main(String[] args) {
        new C2008051300().foo(2);
    }
}

で、エラーも何も出ない


javap -c を実行

Compiled from C2008051300.java
public class C2008051300 extends java.lang.Object {
    int x;
    public C2008051300();
    void foo(int);
    public static void main(java.lang.String[]);
}

Method C2008051300()
   0 aload_0
   1 invokespecial #1 <Method java.lang.Object()>
   4 return

Method void foo(int)
   0 aload_0
   1 aload_0
   2 getfield #2 <Field int x>
   5 putfield #2 <Field int x>
   8 return

Method void main(java.lang.String[])
   0 new #3 <Class C2008051300>
   3 dup
   4 invokespecial #4 <Method C2008051300()>
   7 iconst_2
   8 invokevirtual #5 <Method void foo(int)>
  11 return