-2

共有参照を最善の方法で理解しようとしていますが、完全に理解しているかどうかはわかりません。

共有参照についての私の理解は、コレクションがあり、コード内にその特定のコレクションへの参照が 2 つ以上存在する場合です。それらの参照の 1 つで変更された場合、他の参照は同じではなく、エラーが生成されます。正しいですか?

よろしく

4

2 に答える 2

2

あなたとあなたの兄弟がサーカスにいて、それぞれ風船とペンの賞品を獲得したと想像してください。あなたは風船に幸せそうな顔を描き、弟は彼の風船に悲しい顔を描きます。

現在、参照を共有していません。お互いを変更せずに、バルーンに描画される内容を変更できます。

悲しいことに、あなたはうっかり風船を手放してしまいましたが、弟はあなたを愛しているので、自分の風船をあなたと共有することを申し出て、2 つ目の紐を結び、その紐をあなたに渡しました。これで、1 つのバルーンへの参照が共有されました。

これで、バルーンの顔に加えられた変更はすべて、2 人で共有されます。風船が1つとひもが2つ入っています。あなたが持っている風船に幸せそうな顔を描くと、お兄さんも同じ風船なので、持っている風船にも幸せそうな顔が見つかります。

于 2013-02-04T11:38:02.200 に答える
1

これらの参照のいずれかで変更された場合、他の参照は同じではなく、エラーが発生しますか?

正しいが部分的に。コレクションのコンテンツが 1 つの参照によって変更された場合、他の参照も更新されたコンテンツを指します。

あなたの他の部分は、それがエラーを生成すると言っています。まあ、それはロジックに依存します。

class A
{
    public static void main(String[] args)
    {
        A a1 = new A();
        A a2 = a1;
        A a3 = a2;
    }
}

ここでは、すべての参照が同じオブジェクトを指しています。したがって、 object が によって変更された場合a1、他の参照a2a3も変更状態が表示されます。

于 2013-02-04T11:25:11.297 に答える