浅いコピーとは、プリミティブ値であれ参照値であれ、同じ属性値を持つオブジェクトの「コピー」を意味します。
浅いコピーを実行する際に、「新しいインスタンスを作成する」必要がありますか? なので:
public class A {
int aValue;
B bObj;
...
public A createShallow(A a1Obj) {
A aObj = new A();
aObj.aValue = a1Obj.aValue;
aObj.bObj = a1Obj.bObj;
return aObj;
}
}
または、割り当てによるコピーも浅いコピーと見なされます。
B b = new B(10);
A a = new A(1, b);
A a1 = a;
ウィキペディアのこの記事では、同じメモリ ブロックを共有する参照変数としてシャロー コピーを定義しています。したがって、このコピーによる割り当ても浅いコピーになります。
しかし、オブジェクトの「コピー」ではなく、同じオブジェクトを指す変数ではありませんか?