2017-08-14 70 views
-5

在靜態方法中聲明一個變量爲靜態時會給出錯誤(編譯時錯誤)。 我的代碼是在這裏: -java中靜態方法中的靜態變量

public class MainStatic { 

    public static void main(String[] args) { 
     System.out.println("Value of static variable is"+print(10));  
    } 
    public static void print(int number) { 
     static int x = number; 
     ++x; 
     System.out.println(x); 
    } 
} 

我得到的編譯時錯誤: - 「爲參數x非法修改;只有最終被允許」。 由於靜態方法不依賴於類的實例,那麼爲什麼我無法在靜態方法內聲明一個靜態變量? 但它是可訪問的,如果我在方法中聲明該類內的變量?

+0

你不需要靜態。你做 ? –

+1

範圍修飾符('static','public'等)的內部方法不可用。範圍始終是方法。 –

+0

你的問題是什麼? –

回答

0

一個靜態變量屬於該類,可以根據變量的訪問修飾符允許任何人修改。本地方法變量只存在於方法內部(以及執行期間),並且不能由此方法之外的任何人訪問。它根本沒有意義。

+1

謝謝@Jack Flamp –

3

局部變量只在調用時才存在。靜態不會(也不會)影響它們。

+0

如果我理解正確,那麼它意味着: - 靜態變量在調用方法時不起任何作用,它只會作爲全局變量受到影響。 –

+0

局部變量與*類*沒有關係,或者它的實例是否存在。當方法運行時,生命是完全被包含的。不必擔心類。那個幸運的實例變量。 – Kayaman

+0

謝謝@Kayaman –