可以在 Java 中的静态上下文中使用这个关键字吗?
静态方法或块属于该类,这些方法或块将随该类一起加载到内存中。你可以在不创建对象的情况下调用静态方法。(使用类名作为引用)。
而 Java 中的 “this”用作对当前对象的引用。但静态上下文(方法和块)没有任何实例属于该类。
简单来说,要使用 “this” 方法应由对象调用,而对于静态方法而言则并非总是必需的。
因此,你不能在静态方法中使用此关键字。
示例
在以下 Java 程序中,类 ThisExample 包含一个私有变量 name,其中包含 setter 和 getter 方法以及一个实例方法 display()。在主方法(为静态)中,我们尝试使用 “this” 调用 display() 方法。
public class ThisExample { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void display() { System.out.println("name: "+this.getName()); } public static void main(String args[]) { this.display(); } }
编译此程序时,它会给你一个错误,如下所示 -
编译时错误
ThisExample.java:17: error: non-static variable this cannot be referenced from a static context this.display(); ^ 1 error
广告