オブジェクトの複製について質問させて下さい。

ClassA a = new ClassA();

a.x = "xxxx";
a.y = "yyyy";
a.z = "zzzz";

ClassA b = a;

b.x = "XXXX";

とすると a.x も "XXXX"になってしまいますよね。
同メモリを参照しているからだと思うのですが、
これを別メモリにする方法を教えて下さい。
以上お願いします。