可以在 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
廣告