Java 为什么不能在静态方法中使用'this'关键字

class Sub {

static int y;

public static void foo() {

this.y = 10;

}

}

我了解这this代表调用方法的对象,并且静态方法未绑定到任何对象。但是在上述情况下,变量y也是静态的。

如果我们可以在类对象上调用静态方法,为什么不能允许静态方法设置类的静态变量。

此附加约束的目的是什么?

回答:

因为this是指对象实例。静态方法的调用中没有对象实例。但是当然你可以访问你的静态字段(仅静态字段!)。只需使用

class Sub {

static int y;

public static void foo() {

y = 10;

}

}

如果要确保获取的是静态字段,y而不是某些具有相同名称的局部变量,请使用类名称指定:

class Sub {

static int y;

public static void foo(int y) {

Sub.y = y;

}

}

以上是 Java 为什么不能在静态方法中使用'this'关键字 的全部内容, 来源链接: utcz.com/qa/420788.html

回到顶部