可以在 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP