• ベストアンサー

コンストラクタの引数の中のnew?

はじめまして☆ java初心者ですが、意味がわからなくて困っています。 オブジェクトをnewする時、たまにコンストラクタの引数部分に newの記述がある時があるのですが、これはどういう意味でしょうか? (何のオブジェクトを作成しているのでしょうか?) よかったら、教えてください。

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

  • ベストアンサー
  • Yanch
  • ベストアンサー率50% (114/225)
回答No.3

例をあげて、説明してみます。 ---------- Sample.java ---------- 1:class A { 2: public A() { 3: System.out.println("A#A() -- START"); 4: System.out.println("A#A() -- END"); 5: } 6:} 7: 8:class B { 9: public B(A param1) { 10: System.out.println("B#B(A param1) -- START"); 11: System.out.println("B#B(A param1) -- END"); 12: } 13:} 14: 15:public class Sample { 16: 17: public static void main(String[] args) { 18: System.out.println("Sample#main(String[] args) -- START"); 19: 20: B instance1 = new B(new A()); 21: 22: System.out.println("Sample#main(String[] args) -- END"); 23: } 24: 25:} 26: ---------- Sample.java ---------- この例だと、 > 20: B instance1 = new B(new A()); の部分がコンストラクタの引数に new を使用しています。 これは、BクラスのB(A param1)と言うコンストラクタに、 Aクラスのインスタンスを渡していると言う事です。 new A()の部分で、Aクラスのコンストラクタを呼び出して、インスタンスを生成してます。

yurika-i
質問者

お礼

Yanchさん ProKaseifuさん Rycleさん ご回答大変ありがとうございます。m(_ _) m なんとなく意味がわかりました! ちなみにわからなかったコードは interface A{void x();} class B implements A {public void x(){}public void y()}} class C extends B {public void x()} java.util.List<A> list = new java.util.ArrayList<A>(); list.add(new B()); list.add(new C()); のnew B() ,new C() という記述のいみが良くわかりませんでした。 ご回答ありがとうございました。

その他の回答 (2)

回答No.2

HogeClass hoge = new HogeClass(new HogeHogeClass()); ↑こーゆー記述ですか? No1さんの言うように何をしているのかはプログラムによるのでその内容を確認してください、としか言えません。

noname#131718
noname#131718
回答No.1

おそらく質問の記述だけじゃ誰も回答できないのではないでしょうか。 どのようなプログラムを書いていて、何のクラスを使おうとしているのか、どのような記述をしているのかを示さないと、プログラムの種類は人それぞれ限りなくあるので回答できないかと。 回答できる方がいたらすいません。 一つ言えるとしたら、newの後の名前をAPI等で調べてみると良いと思います。

関連するQ&A