• ベストアンサー

クラス内で自分自身をインスタンス化

javaで開発をしております。 あるソースコードに、クラス内のメソッドで自分自身をインスタンス化しているものを見ました。初めて見たのですが、どういった場合に使われるのでしょうか。 public class Sample { public Sample hoge() { Sample sa = new Sample(); //何らかの処理 return sa; } }

質問者が選んだベストアンサー

  • ベストアンサー
  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.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(); なお、他の回答にある「再帰処理」というのは質問文の読み間違いだと思います。

madosel15
質問者

お礼

ありがとうございます、参考になりました

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

再帰処理

関連するQ&A