「インスタンス」と「オブジェクト」
オブジェクト指向言語のクラスを使うとき「インスタンス」や「オブジェクト」という言葉がよく登場します。
「インスタンスの生成」「オブジェクトの生成」「クラスのインスタンス」「クラスのオブジェクト」など、書籍やインターネット上のサイトでも表現が異なります。
また「インスタンス」と「オブジェクト」は同じ意味のように使用されています。ではなぜ同じ意味のように使われているのに、言葉が違うのでしょうか。
本記事では、インスタンスとオブジェクトの違いについて解説しています。
簡単に説明
- オブジェクト:さまざまな実体の総称
- インスタンス:クラスを元に作成したオブジェクトの実体のこと
スポンサーリンク
オブジェクトとは
オブジェクト(英:object)とは、物、物体などの意味を持つ英単語で、ソフトウェアの分野では、コンピュータ上で操作や処理の対象となる何らかの実体のことをいいます。
そして、オブジェクト指向では、クラスのインスタンスのことをオブジェクトといいます。
オブジェクトとインスタンスの違いは、下記図のようにオブジェクトとはさまざまな実体の総称であり、インスタンスもオブジェクトの1つです。
ポイント
オブジェクトはさまざまな実体の総称であり、インスタンスはオブジェクトの1つ。オブジェクト指向言語ではオブジェクトとインスタンスは同じものを指す。
インスタンスとは
インスタンス(英:instance)は、「実例」の意味を持つ英単語で、ソフトウェアの分野では「クラスを元に作成したオブジェクトの実体」のことをいいます。
オブジェクト指向言語で登場するクラスというのは、設計図のようなものであり、そのままでは使用することができません。
クラスを使用するには、メモリ上にクラスのオブジェクトを生成する必要があります。(クラスのインスタンスを生成するプロセスを「インスタンス化」と呼ぶ)
上記図のように「クラスを元に作成したオブジェクトの実体のことをインスタンス」といいます。
まとめ
オブジェクトとは、さまざまな実体の総称であり、インスタンスもオブジェクトの1つです。
まとめ
オブジェクト指向言語では「インスタンスの生成」と「オブジェクトの生成」は同じ意味であり、「インスタンス」と「オブジェクト」も同じものを指す言葉です。