• ベストアンサー

JAVAインスタンス作成 クラスを2回書くのはなぜ

インスタンス作成の際 Computer myComp = new Computer(); クラス 変数 = new クラス (引数) このようにクラス名を左右2度書くのはなぜですか? 何か理由があるのでしょうか。

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

  • ベストアンサー
noname#208507
noname#208507
回答No.1

いつも左右で同じクラスであるわけではありません。 例えばMachineというComputerクラスの親クラスがあると考えてください。 Machine myComp = new Computer(); ということができます。 このメリットについては、ポリモーフィズム(多態性)を調べてください。

ubakew
質問者

お礼

ありがとうございました。 大変参考になりました。

その他の回答 (2)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

Computer myComp; Computerオブジェクトを参照するための変数myCompを作った。 でもまだmyCompはどの実体も指し示していない状態。 myComp = new Computer(); Computerクラスを実体化して,myCompがそれを指し示すようにした。 という別々の2行で説明できるものを,一行にまとめた書式だから。 ---------------------------------------- イコールの左右それぞれにクラス指定があるのってそんなに変ですか? 例えば,Javaにおいて float f = 1.0; という行はエラーになるのですけれど, それは,イコールの左がfloat型なのに対して,イコールの右側の 1.0 がdouble型のリテラルだからですよね。 だから,float f = 1.0F; と書いて右側がfloat型であることを示すわけです。それと同じですよ。 ---------------------------------------- ANo.1,ANo.2でも指摘のあった,イコールの左右でクラスが異なる例はこちら。 http://okwave.jp/qa/q7175470.html の私の過去の回答ANo.6の後半

ubakew
質問者

お礼

ありがとうございました。 大変参考になりました。

回答No.2

最初のクラスは変数のクラスを指していて、2つ目のクラスは生成するインスタンスのクラスを指しています。 他の方の回答にあるように、それらは親子関係があれば異なっていてもよいので、それぞれ指定できるようになっています。

ubakew
質問者

お礼

ありがとうございました。 大変参考になりました。

関連するQ&A

専門家に質問してみよう