- ベストアンサー
クラス内で自分自身をインスタンス化
javaで開発をしております。 あるソースコードに、クラス内のメソッドで自分自身をインスタンス化しているものを見ました。初めて見たのですが、どういった場合に使われるのでしょうか。 public class Sample { public Sample hoge() { Sample sa = new Sample(); //何らかの処理 return sa; } }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
用途はあまり思い付きませんが、別に禁止はされていませんし、そんなに不思議なコードではないと思います。 たとえば、あるクラスのオブジェクトをコピーするメソッドを考えてみます。Javaにはオブジェクト複製のためのclone()メソッドがありますが、ここでは敢えて学習用サンプルとしてとらえてください。 public class Sample { public Sample copy() { Sample sa = new Sample(); //thisオブジェクトからsaオブジェクトへ //データをコピーする処理をここに書く return sa; } } このcopy()メソッドは下記のように使えます。 Sample objA = new Sample(); Sample objB = objA.copy(); なお、他の回答にある「再帰処理」というのは質問文の読み間違いだと思います。
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5238/13705)
回答No.1
再帰処理
お礼
ありがとうございます、参考になりました