ふじ@メガネボーイズのメモのような日記 RSSフィード

2008-09-12

オブジェクトとインスタンスの違い

オブジェクトインスタンスの違いについて自分なりに整理してみました(あくまでも自分の解釈)。

各用語の解釈

検証

観点1 : オブジェクト ⇒ [抽象化] ⇒ [具体化] ⇒ インスタンス
  1. オブジェクトは、抽象化してクラスを作ることができる
  2. インスタンスは、抽象化したもの(抽象的なもの)を具体化したものである

⇒クラスから具体化してオブジェクトを生成した場合、そのオブジェクトは、そのクラスのインスタンスである

観点2 : 抽象化できるもの ⇒ [抽象化] ⇒ [具体化] ⇒ インスタンス
  1. 何か抽象化できるもの(抽象的なもの)があるとする
  2. インスタンスは、抽象化したもの(抽象的なもの)を具体化したものである

抽象化したもの(抽象的なもの)があり、それを具体化したのなら、それはインスタンスである(オブジェクトに限らない)。

観点3 : オブジェクト ⇒ [抽象化] ⇒ [具体化(=インスタンス化)] ⇒ オブジェクト(=インスタンス
  1. オブジェクトは、物理的、概念的にまとまった一意の存在である
  2. クラスを具体化してオブジェクトを生成することができる

⇒クラスを具体化してオブジェクトを生成した場合、インスタンス化と呼ぶ。

観点4 : オブジェクト ⇒ [抽象化せず] ⇒ [コピー(≠インスタンス化)] ⇒ オブジェクト(≠インスタンス
  1. オブジェクトは、物理的、概念的にまとまった一意の存在である
  2. オブジェクトは、抽象化せず、コピーして新たなオブジェクトを生成できるとする

⇒コピーしてオブジェクトを生成した場合、インスタンス化とは呼ばない。

まとめ

と思う。

skelton_boyskelton_boy2008/09/12 22:18ふじさんはオブジェクトありきですかね?オブジェクト指向の原点である、プラトンのイデア論ではクラスありきな感じですよね。「世の中にあるりんごはみんな違うのに、なんでりんごだと認知できるのだろう?それは、頭の中に理想的なりんごがあるからだ!」のアレのアレです。

ベテランになると、クラスだけでいいらしいけど、やっぱオブジェクト主導の方がやりやすくて、分かりやすいよね。

fuji_tttfuji_ttt2008/09/13 11:00オブジェクト指向の原点がイデア論なのかとビックリした。
これって、イデア論に当てはめて説明されることがあるってことだよね?
僕は、クラスを使うもの以外にも、おもしろいオブジェクト指向がいっぱいあると思っているので。

skelton_boyskelton_boy2008/09/13 13:36オブジェクト指向のクラスとインスタンスに関しては、イデア論そのものだと思うな。
オブジェクト指向はそれ以外にも、いろいろ概念があるので、イデア論だけではないけど。

fuji_tttfuji_ttt2008/09/13 18:40なるほど。確かにクラスを使ったオブジェクト指向はイデア論だね。