このステートメントを変更することはありませんあなたのcを変更した場合:
c2 = c ;
はc2
にc
の値をコピーします。 c
の値はではなく、のCalendar
オブジェクトです。これは参考値です。このステートメントの後、2つの変数は同じ値を持ちます - 同じオブジェクトへの2つの参照。 Calendar
オブジェクトの変更は、いずれかの変数を介して確認できます。
あなたの家の住所を示す2つの異なる人物のようなものです。あなたの家に行くために住所を使用し、フロントドアを緑色に塗ると、他の人もそれを見るでしょう。
Calendar
-specificではないことに注意してください。これは、すべてのクラスの割り当ての動作です。
(基本的に変数、参照、オブジェクトを区別することは非常に重要です。通常の説明では、3つは頻繁に間違って使用されることがよくありますが、必要なときに違いを伝える必要があります)
なお、このコード:
Calendar c2 = Calendar.getInstance();
c2 = c;
が無意味に新しいCalendar
インスタンスを作成しています。
Calendar c2 = c;
そのコードが同じ目に見える効果がありますが、Calendar.getInstance()
を呼び出した後、新しく作成されたオブジェクトを廃棄せずに:それはように、より賢明に書かれることになります。
私はその正しい..を願っています! – SenthilPrabhu
あなた自身のために結果を比較するための少しのテストプログラムを書いてみませんか? – Mike
この文は、変数 'c2'に' c'への参照を割り当てます。 ( 'c == c2'は' true'になります)。 – afk5min