たとえば、Board
多くのフィールドを持つクラス (つまり、かなり複雑なクラス) があるとします。次のように Board をインスタンス化します。
Board b = new Board();
この例では、コンストラクターにパラメーターを入力していませんが、実際の例ではパラメーターが必要になる場合があります。次に、Board の新しいインスタンスをインスタンス化し、それを次のように設定するとします。
Board c = b;
これは、実際には新しいボードを作成しません。私が知っていることからc
、b
今は同じメモリ領域、同じ Board オブジェクトを指しています。したがって、 について何かを変更するとしたらb
、次のように整数フィールドをインクリメントするとします。
b.count++;//Assume count is an integer field in the Board class.
値c.count
もインクリメントする必要があります。ただし、これを自分で行うと、うまくいきません。 b.count
増加していますが、まだ増加していませc.count
ん。
なぜこれが起こるのか、誰かが私に説明できますか? この効果は私が実現したいものです。したがって、これを実装する方法についてのアドバイスは非常に役に立ちます (一般的な例は問題ありません)。