私はこのコードを持っています:
class Foo {
int x = 12;
public static void go(final int x) {
System.out.println(x);
}
}
引数 final x とインスタンス x は同じ名前です。その名前が引数変数と同じであることを考慮して、インスタンス変数 x = 12 を go() メソッドで使用したい場合、どのように参照しますか?
私はこのコードを持っています:
class Foo {
int x = 12;
public static void go(final int x) {
System.out.println(x);
}
}
引数 final x とインスタンス x は同じ名前です。その名前が引数変数と同じであることを考慮して、インスタンス変数 x = 12 を go() メソッドで使用したい場合、どのように参照しますか?
静的メソッド内で使用するには、静的にする必要があります。
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);
}
this.x
インスタンス変数を指します。
インスタンス変数を参照するには、実際のインスタンスにいる必要があります。メソッドはそうであってはなりませんstatic
。