ボールのインスタンスを作成し、それを別の変数にコピーすると、元の変数を変更すると、ボールのコピーも変更されます。たとえば、以下の非常に単純化された例を見てください。
class Ball() {
Color _color;
public Ball(Color startColor) {
_color = startColor;
}
public void setColor(Color newColor) {
_color = newColor;
}
}
Ball myBall = new Ball(black);
Ball mySecondBall = myBall;
myBall.setColor(white);
_colorのアクセサメソッドを省略しましたが、ボールの色を取得すると、両方とも白になります。だから私の質問は:
- 1つのオブジェクトを変更すると、そのコピーが変更されるのはなぜですか。
- オブジェクトをコピーして、個別に変更できるようにする方法はありますか?