我們可以在Java的方法中宣告靜態變數嗎?
靜態欄位/變數屬於類,它將與類一起載入到記憶體中。您可以無需建立物件即可呼叫它們(使用類名作為引用)。在整個類中只有一個靜態欄位的副本可用,即靜態欄位的值在所有物件中都相同。您可以使用`static`關鍵字定義靜態欄位。
示例
public class Sample{ static int num = 50; public void demo(){ System.out.println("Value of num in the demo method "+ Sample.num); } public static void main(String args[]){ System.out.println("Value of num in the main method "+ Sample.num); new Sample().demo(); } }
輸出
Value of num in the main method 50 Value of num in the demo method 50
方法中的靜態變數
方法中的變數是區域性變數,它們的範圍僅限於方法內,並且在方法執行後會被銷燬。也就是說,您不能在當前方法之外使用區域性變數,這與類/靜態變數的定義相矛盾。因此,在方法內宣告靜態變數沒有任何意義,如果您仍然嘗試這樣做,則會生成編譯時錯誤。
示例
在下面的Java程式中,我們嘗試在方法內宣告一個靜態變數。
import java.io.IOException; import java.util.Scanner; public class Sample { static int num; public void sampleMethod(Scanner sc){ static int num = 50; } public static void main(String args[]) throws IOException { static int num = 50; } }
編譯時錯誤
如果您嘗試執行上述程式,它將生成以下錯誤:
Sample.java:6: error: illegal start of expression static int num = 50; ^ Sample.java:9: error: illegal start of expression static int num = 50; ^ 2 errors
廣告