オブジェクト指向とは?
まず、当然ながらタイトル詐欺ですのでご了承くださいませ。
オブジェクト指向は、プログラミング学習者でも完全に理解するのが難しい概念です。
ましてや、プログラミング未経験の方にとっては、「オブジェクト」も「指向」も聞き慣れない言葉ですので、混乱されると思います。
プログラミングを独学で学んできた僕も、例にもれずオブジェクト指向を理解できなかった一人でした。
今回は、そんな僕がオブジェクト指向についてなるほど!と思った考え方を残しておこうと思います。
オブジェクト指向を理解しよう
「オブジェクト」はモノを意味します。
オブジェクト指向とは、わかりやすく言えば「現実に存在するモノを扱うようにプログラミングを行う考え方」のことです。
まだあまりイメージできないですよね。僕もそうでした。
では少し視点を変えます。
オブジェクト指向と対比される概念に、手続き型プログラミングというものがあります。
手続き型プログラミングは、一般的にイメージされているプログラミング方法で、一つ一つの処理や条件を細かく指示し、順番に実行させる手法です。
具体的な例で解説します。
仮に、あなたがプログラムで動いているとします。
さぁ、椅子から立ち上がってください。
簡単ですよね?
これをもしも手続き型プログラミングで書こうとしたらこうなります。
①両足に力を入れる
②上半身を少し倒して、足の上に重心を乗せる
③さらに足に力を入れ、お尻を浮かせる
④膝を伸ばす
⑤上半身をまっすぐにして前を向く。
ですが、あなたは立ち上がるたびにこれらの動作を意識して行っていますか?
たぶんそんな人はいないはずです。
なぜなら、これらの一連の処理は「人間」というオブジェクトの「立ち上がる」という動作(メソッド)にまとめられているからです。
少しイメージがついてきましたか?
先程の立ち上がる動作をオブジェクト指向プログラミングで書くとこうなります。
①立つ、歩く、食べる、寝るといった様々な機能を持つ「人間」というオブジェクトを作る。
②「人間」というオブジェクトに対して「立ち上がる」というメソッドを実行。
たったこれだけです。
ではなぜオブジェクト指向が必要なのでしょう?
それは、楽をするためです。
昔は、すべてのプログラムは手続き型だったそうです。
しかし、プログラムが巨大で複雑になるにつれ、人間の頭の方に限界が来てしまったそうです。
手続き型での大規模なプログラムは、開発者すら全容を把握できないというボトルネックを抱えてしまいました。
その解決のために生み出されたのが「オブジェクト指向」という考え方です。
オブジェクト指向とは、「現実に存在するモノを扱うようにプログラミングを行う考え方」と言いました。要は、できるだけ人間の世界に近づけて、人間が理解しやすいプログラムにしましょうという考え方です。
いかがでしたか?オブジェクト指向についてのイメージが湧いてきたでしょうか?
オブジェクト指向は、現代の開発においてなくてはならない考え方です。
ぜひ、一緒に学んでいきましょう。