簡體   English   中英

最終變量和靜態變量之間的差異,參考它們在內部類中的使用

[英]difference between final and static variables with reference to their use in innerclass

這是關於內部類中的最終變量的,但是如果我們在方法之外將變量聲明為static,則假定該方法是靜態的,而不是將變量聲明為final。 那么在內部類中聲明為靜態外部方法或最終內部方法之間有什么區別? 他們會有所作為還是功能相似? 最好使用哪一種。 我將等待答復。

提前致謝

靜態變量將在內部類的不同實例之間保留其值。 假設您在內部類A中聲明了一個靜態變量,並為其分配了值1,然后在方法調用中將其值遞增為2。創建此內部類的另一個實例時,其A的值為2。

對於最終變量,您只能在聲明時(在您的情況下,即在方法內部聲明)分配一次值。 因此,編譯器的作用是內聯該值,即,無論您在何處將此變量都替換為其值(因為您無法更改其值)。

我建議盡可能使用final變量。 但是static有其制勝的需求,用法取決於使用場景。

最終變量是實例變量,其值在初始化后(在c'tor中或在聲明時)不能更改。 但是靜態變量屬於一個類。 這將在所有實例之間共享。 因此,當您在實例中更改靜態變量的值時,它會反映在所有實例中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM