3

私はこのコードを持っています:

class Foo {
 int x = 12;

public static void go(final int x) {

    System.out.println(x);

}
}

引数 final x とインスタンス x は同じ名前です。その名前が引数変数と同じであることを考慮して、インスタンス変数 x = 12 を go() メソッドで使用したい場合、どのように参照しますか?

4

2 に答える 2

6

静的メソッド内で使用するには、静的にする必要があります。

static int x = 12;

次に、クラス名を介して参照を取得できます。

public static void go(final int x)
{
    System.out.println(Foo.x);
}

または、インスタンスを作成してローカルで使用します。

int x = 12;

public static void go(final int x)
{
    Foo f = new Foo();
    System.out.println(f.x);
}

または、インスタンス メソッドを使用xして、キーワードでインスタンスを参照しthisます。

int x = 12;

public void go(final int x)
{
    System.out.println(this.x);
}
于 2012-12-17T23:56:29.840 に答える
5

this.xインスタンス変数を指します。

インスタンス変数を参照するには、実際のインスタンスにいる必要があります。メソッドはそうであってはなりませんstatic

于 2012-12-17T23:55:01.777 に答える