オブジェクト指向って何だろう?
Java、C#、Ruby、Python、Objective-C、Perl…近年一度は目にしたプログラミング言語ではないでしょうか? これらには共通点があります。
それは「オブジェクト指向プログラミング言語」という点です。
オブジェクト指向の特徴をまとめると、カプセル化(オブジェクトの振る舞いの隠ぺい)、継承、多態性(ポリモフィズム)が挙げられます。
…こう聞くととても難しく感じる方もいるのではないでしょうか?
オブジェクト指向って難しい?
確かにオブジェクト指向は本来プログラミング技法として始まり浸透してきましたが、その考え方は自然なもので難しいものではありません。ここではごく身近な例でオブジェクト指向の考え方を見ていきましょう。
例えば会社組織を考えてみましょう。ここでは出版社を例にします。
出版社の組織が「管理部」「営業部」「編集部」で成り立っていたとします。
第1編集部、第2編集部…第1営業部、第2営業部などにそれぞれの部署は細分化されていることでしょう。
ここで、人を「オブジェクト」と考えます。会社ではグループのメンバーとしての責務を持つ(プログラミング書籍を作る)人たちが協力し合ってグループとしての仕事を行います(図A)。するとグループも責務を持った「オブジェクト」と考えることができます。
図A
同様なグループ(オフィス関連書籍を作る、デザイン関連書籍を作るなど)が何グループか集まり、部を形成します。責務を持ったグループの集まりですので、当然部も「オブジェクト」となります。
部の集まりが会社であるので、当然会社も「オブジェクト」ですね(図B)。
図B
皆さんの手元に本が辿り着くまでを考えると、会社(出版社)は別の会社(印刷所、書店)と関わりを持ちます。これもまた「オブジェクト」となります(図C)。
図C
つまり、皆さんの身近な世界そのものがオブジェクトの集まりなのです。
このように考えると、簡単に感じるのではないでしょうか?
より詳しく知りたい方には本書「ゼロからわかるオブジェクト指向超入門」を紹介します。