什麼是第二行的意義:爲什麼要聲明對最終課程實例的引用是最終的?
public final class A {}
final A obj1=new A();
如果A
是已經不可改變的,爲什麼一個可能要進行obj1
決賽? (只是爲了讓它堅持一個獨特的內存參考?)。
什麼是第二行的意義:爲什麼要聲明對最終課程實例的引用是最終的?
public final class A {}
final A obj1=new A();
如果A
是已經不可改變的,爲什麼一個可能要進行obj1
決賽? (只是爲了讓它堅持一個獨特的內存參考?)。
final
第一行表示該對象被關閉以進行擴展......即,你不能繼承它。
final
在第二行表示您不能重新分配變量。
首先,A
是不可變的,你只要聲明它final
。
然後,最終變量不能改變。如果obj1
是一個字段,則強制執行可變性(與final class
不同)。
如果它是一個局部變量這意味着你可以安全地在匿名類使用它(否則編譯器不能肯定它不會之前有時會改變/在執行匿名類機構)
沒有在你的示例代碼意味着不變性。 – Robin