はじめてのオブジェクト指向入門
第1回 オブジェクト指向ってなんだろう?

避けてはとおれない、オブジェクト指向のお話

こんにちは!

明日は所用で久々に外出の予定。
ですが、外の気温も世間のみんなの服装もわからず。 ダウンジャケットで出るか、スタジアムジャケットで出るか 半日迷い続けているナチュラルヒッキーエンジニアあらたまです!

さて、今回は「はじめてのオブジェクト指向入門」の第1回目。

この記事シリーズでは、はじめてプログラミングを始められたひとが迷いがちな「オブジェクト指向」について、 ゆっくり丁寧にご説明していきたいと思います。

今回はオブジェクト指向ってそもそもなに?ということからお話したいと思います!

「オブジェクト」てなに?

オブジェクト(Object)」は英単語としては「物、物体」という意味です。

りんごやバナナもオブジェクト、あなたや私もオブジェクト。

「UFO」ですらも「Unidentified Flying Object」の省略形で、直訳すると「何かわからない、飛んでる、物体」です、オブジェクト。

じゃぁ「オブジェクト指向」は?

「オブジェクト」の意味が「物、物体」であることはわかりました。
ではその後ろにくっついている「指向」とはなんでしょう?

指向

ある方向・目的に向かうこと。 また、方向や目的を指示してその方に向かわせること。志向。

goo 国語辞典より引用

「指向」はある方向へ向くこと。

そうなると「オブジェクト指向」は「物体の方を向くこと」ということになりますね。

どういうこと?

「物体の方を向く」とはどういうことでしょう?誰が向くの?

向くのはあなたです。

これには「オブジェクト指向」が生まれる前と後で比較して理解するのがわかりやすいです。

以前では、コンピュータープログラムは「動き」を中心に見て設計し作られていました。

これに対して「動き」ではなく「物」を中心に見て設計して作りましょう、という方法を提案したのが「オブジェクト指向」です。

つまり?

つまり、

「オブジェクト指向」というのは「考えかた」の種類、ということですね。

いままでのように動きを中心に見るのではなく、「物(オブジェクト)を中心に見ましょう」という考え方のことなのです。

そして「オブジェクト指向プログラミング」は、その考え方に基づいて設計をしたり、プログラミングをしたりしましょう、ということですね。

違いを見比べてみよう

「動き」を中心に見る、「物」を中心に見る、言葉だけではよくわかりませんね。

ここでは例として、「ホームルームで転校生が自己紹介をする」というシーンを それぞれの見かたで見た場合の違いを見比べてみたいと思います。

「オブジェクト指向」が生まれる前のかたち、「動き」を中心に見た場合です。

「動き」が中心

「ホームルーム」という出来事(動き)を中心に書かれています。
ホームルームが始まり、そして終わる。わかりやすいですね。

それでは、これを「物」を中心に見た場合どうなるのでしょう。

「物」が中心

最初に「先生」「山田君」「田中君」という3つの「物(オブジェクト)」が存在してしますね。

そしてそれぞれの「物」が自分の役割を果たすことで、ホームルームが行われています。

先生が「司会」を自分の役割としてこなします。

その役割の途中で山田君に自己紹介をするように促すと、山田君は「自己紹介をする」という自分の役割を果たします。

その後に先生が田中君にも自己紹介をするように促すと、田中君も「自己紹介をする」という役割を果たします。

これがオブジェクト指向の考え方、設計のしかたです。

オブジェクト指向のメリット

初めて見ると、なんでこんなややこしいことをしなければいけないのかな、と感じるかもしれませんね。

しかしオブジェクト指向のことを深く知り、使い慣れていくにつれて 「動き」を中心に考えていたときより遥かに便利で、メリットがとても多いことに気づいてくると思います。

現在ではほとんどのプログラミング言語がこの「オブジェクト指向」を採用しています。 それは「オブジェクト指向」メリットが大きいからこそ、爆発的に普及した結果なのです。

今回はここまでです!

次回はさらにオブジェクト指向の例を挙げて、その考えかたに少しずつ慣れていきたいと思います!

次回へ続く。

>> 続きの記事
【はじめてのオブジェクト指向入門】第2回 オブジェクト指向は現実世界に近い