2017-09-14 102 views
-5

我想知道爲什麼有時我會看到具有靜態變量的代碼?什麼時候使用靜態變量而不是「普通」變量更好?如果它的值不是從一個變化到另一個變化,使用最終變量不是更好嗎?什麼時候使用靜態變量更好?

+0

這是相當意見的基礎和廣泛的你不覺得嗎? –

+0

當您在某個級別上有一些您需要的值時。例如,如果你有一些靜態方法,那麼你的值也需要是靜態的。 –

回答

2

使用靜態變量的點與最終的點不一樣。

最終聲明的變量(靜態或非靜態)不能修改。它們通常用作「參考值」或常量。

因此需要靜態變量(和方法)作爲「共享內容」。例如,說辦公室裏的每個人都喜歡喝咖啡。我們每個人都帶着自己的咖啡機好嗎?還是我們更好地爲整個辦公室共用一臺這樣的機器?

顯然你想選擇共享選項。在編程習慣用法中,這將轉化爲Office類中代表唯一CoffeeMachinestatic變量。

題外話但肯定你不想讓這臺咖啡機final。如果有人破壞它會怎樣?您需要替換它,從而更改變量。

0

當只需要一個變量副本時使用靜態變量。所以如果你在方法中聲明變量沒有使用這樣的變量,它只會變成本地函數..

聲明爲靜態的變量通常在類的所有實例中共享。

1

static表示該變量在該對象的所有實例中都是相同的。

主要的例子是一個對象計數器。

class foo{ 

    private static int count = 0; 

    public foo() 
    { 
     count ++; 
    } 

    public static getCountOfObj() 
    { 
     return count; 
    } 
} 

因此,您可以在所有foo-Objects上對其進行編輯。

+0

請不要使用對維基百科 –

+0

的引用好吧,我刪除它:) – Baum

0

我假設你的意思是靜態字段。

static字段與的類相關聯,而實例字段被關聯到一個對象(又名類實例)。

如果一個字段被標記爲final(適用於實例和靜態字段),那麼它不能被重新分配

所以每個人都有自己不同的角色。

相關問題