クラスとオブジェクトとインスタンスの関係 - Qiita からの転記。
クラスとインスタンス
クラスは設計図で、インスタンスはその設計図を実体化したもの
(実体化することをインスタンス化という)。
例えば、人間という言葉を想像した時に、思い浮かべるものは、特定の誰かではなく、漠然とした人間を思い浮かべる。ただ、自分も人間だし、自分の友達や親も人間である。
この始めに思い浮かべた人間がクラスで、自分のと友達や親といった実体があるものがインスタンスと考えてもよい。
オブジェクト指向
オブジェクト指向とは、オブジェクト同士の相互作用として、システムの振る舞いをとらえる考え方。
このオブジェクト指向によって、考えられたのが、クラスやインスタンス。
人クラス、猫クラス、家クラスなどそれぞれクラスを用意することで、それぞれの振る舞いをとらえることができるようになる。なので、クラスはオブジェクトである。
同様に、自分インスタンス、自分が飼っている猫インスタンスなどそれぞれのインスタンスを用意することで、それぞれの振る舞いをとらえることができるようになる。なので、インスタンスもオブジェクトである。
まとめる
まとめると
・クラスはオブジェクトである。
・インスタンスはオブジェクトである。
・クラスをインスタンス化したものがインスタンス。
(クラスは設計図でインスタンスは実体化される。)
オブジェクト指向の考えに則って作られたのがクラスとインスタンスです。
結局、クラスもインスタンスもオブジェクトなのです。
5分で絶対に分かる:5分で絶対に分かるオブジェクト指向 (5/6) - ITmedia エンタープライズからの転記。
- クラスとインスタンス
同じ種類のオブジェクトをまとめて考えると便利です。これをクラス――classと呼びます。クラスとはオブジェクトの抽象概念です。例えば自分と家族のPさん、Qさん、Aさんや同僚のBさんなど人間オブジェクトの抽象概念を「人」というクラスにします。自分の勤務先O社や妹の勤務先U社など個々の会社の抽象概念を「会社」というクラスにします。
インスタンス――instanceの言葉の意味は例です。for instanceは「例えば」です。クラスに属するオブジェクトをインスタンスと呼びます。例えばクラス「人」のインスタンスは自分や家族のPさん、Qさん、Aさんや同僚のBさんです。クラス「会社」のインスタンスはP社やU社です。
インスタンスとオブジェクトは同じ意味で使われる場合が多いですが、インスタンスといった場合は必ずクラスを意識しています。つまり、インスタンスはあるクラスに属するオブジェクトの具体例だからです。