我想知道爲什麼有時我會看到具有靜態變量的代碼?什麼時候使用靜態變量而不是「普通」變量更好?如果它的值不是從一個變化到另一個變化,使用最終變量不是更好嗎?什麼時候使用靜態變量更好?
回答
使用靜態變量的點與最終的點不一樣。
最終聲明的變量(靜態或非靜態)不能修改。它們通常用作「參考值」或常量。
因此需要靜態變量(和方法)作爲「共享內容」。例如,說辦公室裏的每個人都喜歡喝咖啡。我們每個人都帶着自己的咖啡機好嗎?還是我們更好地爲整個辦公室共用一臺這樣的機器?
顯然你想選擇共享選項。在編程習慣用法中,這將轉化爲Office
類中代表唯一CoffeeMachine
的static
變量。
題外話但肯定你不想讓這臺咖啡機final
。如果有人破壞它會怎樣?您需要替換它,從而更改變量。
當只需要一個變量副本時使用靜態變量。所以如果你在方法中聲明變量沒有使用這樣的變量,它只會變成本地函數..
聲明爲靜態的變量通常在類的所有實例中共享。
static表示該變量在該對象的所有實例中都是相同的。
主要的例子是一個對象計數器。
class foo{
private static int count = 0;
public foo()
{
count ++;
}
public static getCountOfObj()
{
return count;
}
}
因此,您可以在所有foo-Objects上對其進行編輯。
請不要使用對維基百科 –
的引用好吧,我刪除它:) – Baum
我假設你的意思是靜態字段。
static
字段與的類相關聯,而實例字段被關聯到一個對象(又名類實例)。
如果一個字段被標記爲final
(適用於實例和靜態字段),那麼它不能被重新分配。
所以每個人都有自己不同的角色。
- 1. 什麼時候使用靜態變量和自我關鍵字
- 2. 什麼時候全局靜態常量變量被初始化?
- 3. 爲什麼靜態變量不好?
- 4. 什麼時候變得更好?
- 5. 什麼時候不使用RelativeLayout更好?
- 6. 什麼時候一個靜態變量是真正初始化
- 7. 什麼時候gae中的servlet靜態變量?
- 8. Java - 爲什麼ClassName.this.variable在變量是靜態的時候工作?
- 9. 什麼時候靜態變量得到垃圾回收?
- 10. 變量變量:什麼時候有用?
- 11. 什麼時候應該使用未初始化的靜態最終變量?
- 12. 什麼時候生成靜態頁面或動態生成更好?
- 13. 爲什麼這個靜態變量有時候會在類中變成空嗎?
- 14. 靜態變量和靜態變量的區別是什麼?
- 15. 什麼時候在PHP中使用變量變量?
- 16. 什麼時候可以使用靜態對象引用
- 17. 什麼時候Docker變量可用?
- 18. 變量在什麼時候變化?
- 19. 什麼時候使用C#中的'靜態方法'
- 20. 什麼時候在PHP中使用靜態類?
- 21. 什麼時候在PHP中使用靜態修飾符
- 22. 什麼時候應該使用靜態方法?
- 23. 你什麼時候需要使用晚期靜態綁定?
- 24. 什麼時候應該使用公共靜態方法
- 25. 什麼是更好的:靜態變量V.S. Asp.NET應用程序會話?
- 26. 什麼時候我們應該去java中的靜態類,變量和方法
- 27. 什麼時候存儲在內存中的本地靜態變量?
- 28. 什麼時候會話狀態準備好在asp.net中使用
- 29. 什麼時候最好加密一個變量?
- 30. 聲明靜態變量時的輸出是什麼?爲什麼?
這是相當意見的基礎和廣泛的你不覺得嗎? –
當您在某個級別上有一些您需要的值時。例如,如果你有一些靜態方法,那麼你的值也需要是靜態的。 –