3

我有这个代码:

class Foo {
 int x = 12;

public static void go(final int x) {

    System.out.println(x);

}
}

参数 final x 和实例 x 具有相同的名称。如果我想在 go() 方法中使用实例变量 x = 12 ,考虑到它的名称与参数变量相同,我将如何引用它?

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指向实例变量。

为了引用一个实例变量,你必须在一个真实的实例中:你的方法不应该是staticthen。

于 2012-12-17T23:55:01.777 回答