我是Java新手。我知道static
是类级别而this
是对象级别但请告诉我static
方法是否可以引用java中的this
指针?
答案 0 :(得分:4)
在this
方法/块中引用static
是没有意义的。可以在不创建Static
的情况下调用instance
方法,因此this
不能用于引用instance
字段。
如果您尝试将this
置于static
方法中,编译器将抛出错误
不能在静态上下文中使用它
答案 1 :(得分:1)
不,在静态上下文中无法访问this
。 June Ahsan说了你可能需要知道的一切,但我想补充一点背景。
对象方法和字节代码级别上的静态方法之间的唯一区别是对象方法的额外第一个参数。可以通过this
访问此参数。
由于静态方法缺少此参数,因此没有this
。
示例:
class MyClass {
private int b;
public void myMethod(int a){
System.out.println(this.b + a);
}
public static void myStaticMethod(int a){
System.out.println(a*a); // no access to b
}
}
在字节代码级别上(粗略地说,因为字节代码看起来不像这样)
class MyClass {
int b;
}
void myMethod(MyClass this, int a){
System.out.println(this.b + a);
}
static void myStaticMethod(int a){
System.out.println(a*a); // no access to b
}
答案 2 :(得分:0)
不,但您可以像这样在类中创建类的静态对象
private static ClassName instance;
然后您可以在构造函数中使用instance = this;
进行设置。然后,您可以在静态方法中使用它。