- ベストアンサー
JAVAインスタンス作成 クラスを2回書くのはなぜ
インスタンス作成の際 Computer myComp = new Computer(); クラス 変数 = new クラス (引数) このようにクラス名を左右2度書くのはなぜですか? 何か理由があるのでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
いつも左右で同じクラスであるわけではありません。 例えばMachineというComputerクラスの親クラスがあると考えてください。 Machine myComp = new Computer(); ということができます。 このメリットについては、ポリモーフィズム(多態性)を調べてください。
その他の回答 (2)
- jjon-com
- ベストアンサー率61% (1599/2592)
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の後半
お礼
ありがとうございました。 大変参考になりました。
- oshietezou
- ベストアンサー率47% (8/17)
最初のクラスは変数のクラスを指していて、2つ目のクラスは生成するインスタンスのクラスを指しています。 他の方の回答にあるように、それらは親子関係があれば異なっていてもよいので、それぞれ指定できるようになっています。
お礼
ありがとうございました。 大変参考になりました。
お礼
ありがとうございました。 大変参考になりました。