オブジェクト指向のコードを書く際、最初に立ちはだかる専門用語が「クラス」と「インスタンス」です。この関係性を現場の感覚で表すなら、「車の設計図」と「工場から出荷された実際の車」という対比が適しています。
クラスとは、どのようなデータ(色、速度、燃料残量)を持ち、どのような処理(走る、止まる、給油する)を行えるかを定義した単なるテキスト情報、すなわち設計図に過ぎません。設計図そのものは紙に書かれた概念であり、ガソリンを入れても走ることはできません。
一方で、その設計図をメモリ上に実体化させたものをインスタンス(オブジェクト)と呼びます。「赤色のプリウス」や「黒色のセレナ」のように、設計図をもとに個別の状態を与えられて初めて、プログラムの中で独立して動作するようになります。ひとつのクラスから異なるデータを持ったインスタンスを何台でも生み出せるため、コードの重複を徹底的に排除できる点が大きな強みです。