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

※ インスタンスもクラスもオブジェクト

 インスタンスは田中さんや福田さんといったID(アイデンテティ)をもったオブジェクトで、同じクラスに属してもそれぞれで独自に活動します。
(実際にはどうかわかりませんが・・)福田さんと田中さんのインスタンスは同じ総理大臣クラスから作成されても各々は独自に活動します。

 クラスはインスタンスをある共通点で分類したオブジェクトです。
 つまり、クラスもインスタンスもオブジェクトで、それぞれはオブジェクトのロール(役割)名です。

 クラスの役割としては実世界のオブジェクト(インスタンス)をコンピュータの世界にモデリングする場合に用いる場合と、コンピュータ内のインスタンスを生成するためのクッキーの型枠的な役割をもつ場合があります。

 実世界のインスタンス全てを違うオブジェクトとしてコンピュータの中に取り込むと、その数は膨大なものになり、非常に無駄です。そこで、必要なインスタンスからある視点で共通点を探し出してクラスとして定義することでコンピュータの世界に取り込みやすくなります。
 つまり、必要とする、ある視点に絞って、それ以外は見ない振りをして共通点を抽出すること・・、そうです、これこそが抽象化そのものなのです。
 クラスという概念こそ抽象化のための一つの強力な武器なのです。
 実世界インスタンス → 実世界クラス → コンピュータ内クラス → コンピュータ内インスタンス という行程でモデリングされ、実世界インスタンスにかわってコンピュータ内インスタンスが作業を行い結果を実世界インスタンスへ反映します。

ホームページへ