避けてはとおれない、オブジェクト指向のお話
こんにちは!
明日は所用で久々に外出の予定。
ですが、外の気温も世間のみんなの服装もわからず。
ダウンジャケットで出るか、スタジアムジャケットで出るか
半日迷い続けているナチュラルヒッキーエンジニアあらたまです!
さて、今回は「はじめてのオブジェクト指向入門」の第1回目。
この記事シリーズでは、はじめてプログラミングを始められたひとが迷いがちな「オブジェクト指向」について、 ゆっくり丁寧にご説明していきたいと思います。
今回はオブジェクト指向ってそもそもなに?ということからお話したいと思います!
「オブジェクト」てなに?
「オブジェクト(Object)」は英単語としては「物、物体」という意味です。
りんごやバナナもオブジェクト、あなたや私もオブジェクト。
「UFO」ですらも「Unidentified Flying Object」の省略形で、直訳すると「何かわからない、飛んでる、物体」です、オブジェクト。
じゃぁ「オブジェクト指向」は?
「オブジェクト」の意味が「物、物体」であることはわかりました。
ではその後ろにくっついている「指向」とはなんでしょう?
goo 国語辞典より引用指向
ある方向・目的に向かうこと。 また、方向や目的を指示してその方に向かわせること。志向。
「指向」はある方向へ向くこと。
そうなると「オブジェクト指向」は「物体の方を向くこと」ということになりますね。
どういうこと?
「物体の方を向く」とはどういうことでしょう?誰が向くの?
向くのはあなたです。
これには「オブジェクト指向」が生まれる前と後で比較して理解するのがわかりやすいです。
以前では、コンピュータープログラムは「動き」を中心に見て設計し作られていました。
これに対して「動き」ではなく「物」を中心に見て設計して作りましょう、という方法を提案したのが「オブジェクト指向」です。
つまり?
つまり、
「オブジェクト指向」というのは「考えかた」の種類、ということですね。
いままでのように動きを中心に見るのではなく、「物(オブジェクト)を中心に見ましょう」という考え方のことなのです。
そして「オブジェクト指向プログラミング」は、その考え方に基づいて設計をしたり、プログラミングをしたりしましょう、ということですね。
違いを見比べてみよう
「動き」を中心に見る、「物」を中心に見る、言葉だけではよくわかりませんね。
ここでは例として、「ホームルームで転校生が自己紹介をする」というシーンを それぞれの見かたで見た場合の違いを見比べてみたいと思います。
「オブジェクト指向」が生まれる前のかたち、「動き」を中心に見た場合です。
「動き」が中心
「ホームルーム」という出来事(動き)を中心に書かれています。
ホームルームが始まり、そして終わる。わかりやすいですね。
それでは、これを「物」を中心に見た場合どうなるのでしょう。
「物」が中心
最初に「先生」「山田君」「田中君」という3つの「物(オブジェクト)」が存在してしますね。
そしてそれぞれの「物」が自分の役割を果たすことで、ホームルームが行われています。
先生が「司会」を自分の役割としてこなします。
その役割の途中で山田君に自己紹介をするように促すと、山田君は「自己紹介をする」という自分の役割を果たします。
その後に先生が田中君にも自己紹介をするように促すと、田中君も「自己紹介をする」という役割を果たします。
これがオブジェクト指向の考え方、設計のしかたです。
オブジェクト指向のメリット
初めて見ると、なんでこんなややこしいことをしなければいけないのかな、と感じるかもしれませんね。
しかしオブジェクト指向のことを深く知り、使い慣れていくにつれて 「動き」を中心に考えていたときより遥かに便利で、メリットがとても多いことに気づいてくると思います。
現在ではほとんどのプログラミング言語がこの「オブジェクト指向」を採用しています。 それは「オブジェクト指向」メリットが大きいからこそ、爆発的に普及した結果なのです。
今回はここまでです!
次回はさらにオブジェクト指向の例を挙げて、その考えかたに少しずつ慣れていきたいと思います!
次回へ続く。