• ベストアンサー

変数の宣言 インスタンス

最近プログラミングを始めたのですが、 疑問点が出てきたので質問させていただきます。 実体をもっているクラスAがあり、 クラスBでクラスAを宣言するときに クラスB内で ・A a; とするのと ・A a = new A(); とするのでは何が違うのでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
noname#94983
noname#94983
回答No.2

A a; これは、ただ単に「クラスAのインスタンスを保管するための変数aを用意する」というだけ。変数aは用意されたが、そこにはクラスAのインスタンスは、まだない。つまり「なにもオブジェクトがない、空っぽの変数」だと思えばいい。だから、この後、どこかで必ず変数aにインスタンスを代入してやらないといけない。 A a = new A(); これは、「クラスAのインスタンスを保管するための変数aを用意し、Aのインスタンスを作ってこれに設定する」ということになる。new A()でクラスAのインスタンスが作成され、それが用意された変数aに代入される。

その他の回答 (1)

  • akinaga
  • ベストアンサー率60% (14/23)
回答No.1

私は、 (1) A a; ⇒ 宣言 (2) A a = new A(); ⇒ 定義 と呼んでいます。 違いは建物で例えると(1)は設計図、(2)は建物本体と 認識してます。つまり、定義しなければプログラムの機能として 動かないということです。

関連するQ&A