什麼時候我宣佈類似情況:最終屬性?
public static final String forma = "Rectangular";
是不是多餘的?作爲字符串final類,那會是什麼改變沒有設置forma
作爲最終的?對於static
,我認爲它不進行任何更改。
什麼時候我宣佈類似情況:最終屬性?
public static final String forma = "Rectangular";
是不是多餘的?作爲字符串final類,那會是什麼改變沒有設置forma
作爲最終的?對於static
,我認爲它不進行任何更改。
請參閱字符串是最終類別和最終關鍵字使參考最終不是對象最終。
最終對象意味着它不能被改變,但是最終參考意味着它不能第一分配之後被分配給另一個對象。
作爲最終意味着你不能修改對象String s="hello"
,"hello"
是字符串對象,它不能被修改,但有關s
如果非最終參考和我做的事情,如:s=s.concat("bing")
然後,"hello"
採取可與"bing"
對象連接,然後分配給s
意味着"hello" and "bing"
對象沒有被修改,它們丟失了它們的引用並且非最終引用s
現在指的是新對象"hellobing"
。
如果你覺得這個有趣,我一定會想要幫助你。
final
確保參考未分配給新值。
如果你不讓它final
,它是有效的一些其他的值賦給forma
(或)你可以做一些Rectangular
運行和分配結果返回給forma
是不是多餘的?
不,它不是多餘的。它是不變的。這個陳述的每個關鍵詞都有意義。 final
使它不可變,static
使它類變量和public
使它全球訪問。
對於對象類型的'final'修飾符意味着對這個對象的引用不能改變,不是它的值!
的final
關鍵字負荷過重,並指在不同的語境完全不同的事情:
因此對於一個String s來說,它的類是最後一個類,所以不允許談論引用。 – diegoaguilar
@Diego現在你可以看看編輯答案 –