オブジェクトとインスタンスって何が違うの?という初心者プログラマー向けの図解

PHPやJavaのプログラミング言語を勉強していると、「オブジェクト」と「インスタンス」という言葉が頻繁に飛び交います。

僕も、最初の頃はオブジェクトとインスタンスの違いがわからず、苦戦していました。

そこで、22年間スポーツしかやってこなかったパソコンチンパンジーの僕でもわかる、「オブジェクトとインスタンスの違い」について、図解で解説していきます。

これでわからなければ、諦めましょう。

オブジェクトはあらゆるものの総称

オブジェクトとインスタンスの違いを説明する前に、オブジェクトの概念について説明していきます。

オブジェクトは全ての総称であり、とても曖昧な概念です。

実世界でいえば、人間、動物、食べ物、自然、本、携帯、服、ありとあらゆるものがオブジェクトに含まれます。

オブジェクトについては、深く理解しようとするよりも、なんとなく「全ての総称なんだな」と認識してください。

オブジェクトとインスタンスの関係

インスタントとオブジェクトの関係

オブジェクトが全ての総称であるならば、インスタンスもオブジェクトの1つということになります。

本やネット上で、オブジェクトとインスタンスが同じ意味のように使用されるのはこのためです。

インスタンスについて正しい定義をすると、クラスから生成されたオブジェクトをインスタンスとなります。

「クラスって何?」という方のために、クラスとインスタンスの関係についても説明しておきます。

クラスとインスタンスの関係

クラスとインスタンスの関係

クラスとインスタンスをわかりやすい例えると、次のようになります。

  • クラス:車の設計書
  • インスタンス:車

設計書(クラス)から、車(インスタンス)が作られるイメージです。

そして、設計書から車が作られる工程を「インスタンス化」と言います。

改めてインスタンスの定義を確認すると、「クラス(車の設計書)から生成(インスタンス化)されたオブジェクトをインスタンス(車)」ということです。

オブジェクトとインスタンスとクラスの関係

オブジェクト、クラス、インスタンスの関係

オブジェクト、インスタンス、クラスの関係をまとめると、次のようになります。

  • オブジェクト:全ての総称(インスタンスもクラスもオブジェクトの1つ)
  • クラス:設計書
  • インスタンス:クラスからインスタンス化されて生成されたオブジェクト

インスタンスもクラスも、オブジェクトの1つだということです。

初心者向けに、分かりやすくシンプルにまとめたので、これでオブジェクトとインスタンスの違いについて分からなければ諦めましょう。

Related

優秀なエンジニア募集

現在、ウェブアプリケーション開発・システム開発の案件を多数保有しており、受託案件希望の優秀なエンジニアを随時募集しております。

そのため、受託希望のエンジニアの方は下記LINE@よりご登録頂き、チャットで簡単な自己紹介をお願いいたします。

使用言語等は指定はありませんので、お気軽にご登録ください。

中澤寛の顔写真

中澤 寛

ラクロスで世代別日本代表になり、旅がしたいというただ一心で、就職せずにとりあえず路上で靴磨きの商売を始める。

その後、独学でプログラミングを学び、ウェブアプリケーション・システム開発を受託で請負、200以上の開発に携わる。

【使用言語】 HTLM・CSS / JavaScript / PHP / Python 。