Murayama blog.

プログラミング教育なブログ

オブジェクト指向のゆるい話

オブジェクト指向とは、「モノ」を中心とした考え方です。
モノとは、目に見える「机」や「イス」、「ハンバーガー」だったり、
目に見えない「音」や「時間」、あるいは「夢」だったりします。
このモノのことを「オブジェクト」と呼びます。


オブジェクトが存在するということは、その背後に必ずクラスが存在します。
クラスとは「概念」を表すものです。


クラスとは「概念」である、少しわかりにくいので例を挙げて考えてみます。


たとえば、世界のどこかに、今日の文明社会とは隔離された秘境の地があるとしましょう。
実際に存在するかはわかりませんが、アマゾンの奥地にそういった集落があるとします。
その集落のど真ん中に、「iPhone」を一つ置いてみます。


iPhoneを拾った原住民はどのような行動を取るのでしょうか。

1. キーロックを解除する
2. Siriに今日のアマゾンのお天気は?と尋ねる
3. iPhoneを理解できない


頭の中で想像してみてください。
おそらく「3. iPhoneを理解できない」が妥当でしょう。


では、なぜ原住民は、iPhoneを理解できないのでしょうか。


それは、彼らの頭の中に「iPhone」という概念が存在しないからです。
概念の存在しないものは、理解することができないのです。


それでは、原住民の頭の中でiPhoneはどのように解釈されるのでしょうか。
答えは一つではありませんが、
たとえば、その形状から判断して「手に取って投げることができる」といった解釈が一つあるでしょう。
つまり、iPhoneは彼らにとって、「投げやすいもの」という概念に分類されるのです。


ここで分類という言葉が出てきました。
実はクラスという用語のルーツはClassification(分類)にあります。
私たちは、日常の生活の中で、無意識のうちにiPhoneiPhoneとして理解しています。
これは、頭の中にiPhoneという概念が存在していることを意味しています。


つまり、私たちの頭の中には、
iPhoneというのは、見た目は美しく清潔感があり、
音楽を聞くことができて、電話をかけることができる、さらにSiriちゃんと話せるモノである」
という概念が存在しているのです。


その概念をクラスと呼び、あなたの手の中にあるiPhoneをオブジェクトと呼ぶのです。