• ベストアンサー

オブジェクトの配列について

Javaを勉強中の初心者です。 どなたか教えてください。 次のクラスTDobjはコンパイルできて、実行結果もでました。 public class TDobj { public static void main(String[] args) { Dog puppy = new Dog(); Dog[] myDogs = new Dog[3]; System.out.println("puppy = " + puppy); for(int i = 0; i < myDogs.length; i++) { System.out.println("myDogs[" + i + "] = " + myDogs[i]); } } } C:\MyJava>java TDobj   ・・・実行結果 puppy = Dog@1ac04e8 myDogs[0] = null myDogs[1] = null myDogs[2] = null ところが、全く同じ中身のクラスTDobj2は次のようなコンパイルエラーがでました。 C:\MyJava>javac TDobj2.java TDobj2.java:5: Dog の Dog(java.lang.String) は () に適用できません。 Dog puppy = new Dog(); ^ エラー 1 個 何故こんなことになってしまったのか教えていただきたいのですが。

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

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

TDobjクラスの中にDogのクラスの記述が無いように思います。ですが、コンパイルは通っているということは、どこかにDogクラスの記述が書かれたファイルがあるはずです。 基本的に最初のコンパイルの時はそのファイルを参照することが出来たにもかかわらず、TDobj2の時はそれが出来なかったことになります。 私が思うには『パス』の問題ではないかと思います。 以下にサイトをご紹介します。お役に立てばよいのですが・・・

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/win32/classpath.html
KuroGin
質問者

お礼

早速ご回答いただきありがとうございました。 「パス」については、今後勉強したいと思っています。                     KuroGin

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

class Dog が書かれていないので推測ですが、 コンストラクタが引数無しでは定義されていないで、 String を引数に取るものしかないのではないでしょうか

KuroGin
質問者

お礼

早速ご回答いただきありがとうございました。                  KuroGin

関連するQ&A

専門家に質問してみよう