二行目の意味は何ですか:finalクラスのインスタンスへの参照をfinalとして宣言するのはなぜですか?
public final class A {}
final A obj1=new A();
A
がすでに不変であるなら、なぜ1はおそらくobj1
決勝を作りたいでしょうか? (ちょうどそれをユニークなメモリ参照に固執させるためです)。
二行目の意味は何ですか:finalクラスのインスタンスへの参照をfinalとして宣言するのはなぜですか?
public final class A {}
final A obj1=new A();
A
がすでに不変であるなら、なぜ1はおそらくobj1
決勝を作りたいでしょうか? (ちょうどそれをユニークなメモリ参照に固執させるためです)。
final
第1行目は、オブジェクトが拡張のために閉じられていることを意味します。それをサブクラス化することはできません。
final
2行目に、変数を再割り当てできないことを意味します。
まず、A
はあなたにはfinal
と宣言するだけでは変更できません。
最終的な変数は変更できません。 obj1
がフィールドの場合、これは可変性を強制します(final class
とは異なります)。
それはローカル変数である場合、それはあなたが安全に匿名クラス(そうでない場合、コンパイラは、匿名クラス本体が実行されている間、それは/前に時々変化し得ることはありません確認することはできません)
ナッシングでそれを使用できることを意味しますサンプルコードでは、不変性を意味します。 – Robin