• ベストアンサー

Java 型指定を伴わないインスタンスの作成?

問題集で以下のプログラム(一部)を見かけました。 class Test{ public static void main(String args[]){ new Animal("A"); } } Animalクラスのインスタンスを作成しているということなのですが、 これまでであれば、 Animal a = new Animal(); というようにイコールの左で インスタンスの型と変数を指定する形で学んで来ました。 型や変数を指定しないでインスタンスの作成をすることが できるのですか? 回答をお願いします。

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

  • ベストアンサー
  • catpow
  • ベストアンサー率24% (620/2527)
回答No.2

>>型や変数を指定しないでインスタンスの作成をすることが できるのですか? 質問のコードには、newの次にAnimalが指定されているので、型は判ります。 だから、コンストラクターでインスタンスは生成できるはずです。 そして、サンプルプログラムってことで、生成されたインスタンスを変数に入れて後で使う必要が無かったのでしょう。 だから、変数に入れなかったように思えます。

noname#225019
質問者

お礼

ありがとうございます。 配列でも、今回のオブジェクト同様に、 new int[3]; などとして変数に代入せずにインスタンスを 作成するのも見掛けました。 混乱していたので助かりました!

noname#225019
質問者

補足

回答ありがとうございます。 ポリモーフィズムを利用した場合は、インスタンスを別の型で利用することができますが、特に型を指定をしない場合、JVMは「new Animal("A");」のように、変数の宣言を伴わない形で、newの次に指定された型でインスタンスを作成する、という理解でいいですか?

その他の回答 (1)

回答No.1

>型や変数を指定しないでインスタンスの作成をすることが > できるのですか? コンストラクタだけで他にメソッドを持たないとか、有っても使わないなら可能だと思います。 他に良くあるのが、こんなパターン。  File file = new File(file_name);  BufferedReader br = new BufferedReader(new FileReader(file)); FileReader()のインスタンスは、変数に代入していない。

noname#225019
質問者

お礼

ありがとうございました!

関連するQ&A

専門家に質問してみよう