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