- ベストアンサー
Java 型指定を伴わないインスタンスの作成?
問題集で以下のプログラム(一部)を見かけました。 class Test{ public static void main(String args[]){ new Animal("A"); } } Animalクラスのインスタンスを作成しているということなのですが、 これまでであれば、 Animal a = new Animal(); というようにイコールの左で インスタンスの型と変数を指定する形で学んで来ました。 型や変数を指定しないでインスタンスの作成をすることが できるのですか? 回答をお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>>型や変数を指定しないでインスタンスの作成をすることが できるのですか? 質問のコードには、newの次にAnimalが指定されているので、型は判ります。 だから、コンストラクターでインスタンスは生成できるはずです。 そして、サンプルプログラムってことで、生成されたインスタンスを変数に入れて後で使う必要が無かったのでしょう。 だから、変数に入れなかったように思えます。
その他の回答 (1)
- nan93850673
- ベストアンサー率32% (179/553)
回答No.1
>型や変数を指定しないでインスタンスの作成をすることが > できるのですか? コンストラクタだけで他にメソッドを持たないとか、有っても使わないなら可能だと思います。 他に良くあるのが、こんなパターン。 File file = new File(file_name); BufferedReader br = new BufferedReader(new FileReader(file)); FileReader()のインスタンスは、変数に代入していない。
質問者
お礼
ありがとうございました!
お礼
ありがとうございます。 配列でも、今回のオブジェクト同様に、 new int[3]; などとして変数に代入せずにインスタンスを 作成するのも見掛けました。 混乱していたので助かりました!
補足
回答ありがとうございます。 ポリモーフィズムを利用した場合は、インスタンスを別の型で利用することができますが、特に型を指定をしない場合、JVMは「new Animal("A");」のように、変数の宣言を伴わない形で、newの次に指定された型でインスタンスを作成する、という理解でいいですか?