• 締切済み

オブジェクト生成とインスタンス化

オブジェクト生成とインスタンス化はどう違うのでしょうか?

みんなの回答

  • Zawaja
  • ベストアンサー率51% (92/180)
回答No.1

同義語だと思って大丈夫です。 http://www.nextindex.net/java/oo2.html ↑ここのソースをよく見るとだとインスタンス化とオブジェクト生成が同じ意味で使われてる部分があるのが分かりますね。 余談ですが、日本語だとオブジェクトとインスタンスがほぼ同じ意味で使用されていますが、厳密な意味ではちょっと違ってきます。 インスタンスというと http://www.atmarkit.co.jp/aig/01xml/instance.html http://www.itmedia.co.jp/dict/programming/object/02160.html の説明みたく、作成したクラスに具体的な内容が入っているという意味合いです。 「生徒」クラスがあったら、インスタンスは(1, "阿部", "理系")、(2, "井上", "理系")、(3, "遠藤", "文系")みたいに異なる内容を持つことができる、つまり、クラスというひな形に対して、インスタンスは複数存在する可能性があるということでしょうか。 インスタンス化という意味になるとnewというキーワードを使用して新しい内容が入ったインスタンスを作成する意味になります。 一方、オブジェクトは、関連するデータの集合とそれに対するメソッドを「オブジェクト」と呼ばれる一つのまとまり(Javaで言うクラス)として管理するということですね。 上記の文章を厳密に定義すれば、「オブジェクト生成」だと、オブジェクト自体を生成したことに意味を強め、インスタンス化はコンストラクタによりnullや特定の値を入れて特定のクラスに対するインスタンスを作成したという意味を強めてるということじゃないでしょうか。 つまり、同義として利用しても通常は問題がないということですね。

関連するQ&A

専門家に質問してみよう