プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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クラスのコンストラクタを呼び出して、インスタンスを生成してます。
    • good
    • 0
この回答へのお礼

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()
という記述のいみが良くわかりませんでした。

ご回答ありがとうございました。

お礼日時:2008/10/26 22:36

HogeClass hoge = new HogeClass(new HogeHogeClass());



↑こーゆー記述ですか?

No1さんの言うように何をしているのかはプログラムによるのでその内容を確認してください、としか言えません。
    • good
    • 0

おそらく質問の記述だけじゃ誰も回答できないのではないでしょうか。


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!