プログラミングの学習について調べていると「オブジェクト指向」という言葉が出てくる事があります。
これは一体何でしょうか? プログラミングを勉強しはじめるときに、オブジェクト指向について知っておくべき事は何か、お話ししたいと思います。
プログラムも整理整頓が必要
プログラムは、コンピュータが読み込んで実行してくれるものです。
でも、それに書き足したり修正したりするのは人間(プログラマ)です。
書き足したり修正したりするには、人間もプログラムを読む必要があります。
プログラミングは問題解決の手段であると、これまでもご説明してきました。
設計や複雑な問題だと手順も複雑になり、プログラムの量も増えます。
これが”ぐちゃぐちゃ”になっていても、コンピュータは困りませんが、プログラマは読みにくくて困ります。
そこで、ぐちゃくちゃのプログラムにならないよう「整理」が重要になります。
オブジェクト指向とは、整理方法の1つ
プログラムもWord文書やExcelワークシートと同じように、ファイルに分けて保存できます。
このときに、どのようにプログラムを分割するかというのが重要になります。
オブジェクト指向というのは、プログラマが書いたプログラムを整理するためのルールの1種です。
(他にも整理方法があって「手続き指向」、「関数指向」などがあります)
オブジェクト思考の特徴は、プログラムの世界に出てくる概念ごとにプログラムを分けて作るところです。
オブジェクト指向によるプログラムの分割の例
おすし屋さんの座席を管理するためのプログラムを例にとってみましょう。
おすし屋さんには、テーブル席とカウンター席があります。どちらも座席の1種です。
これらの働きについてプログラムを書くとしましょう。
- テーブル席
- 呼出ボタンがある
- 座って寿司を食べることが出来る
- 番号がある
- カウンター席
- 座って寿司を食べることが出来る
- 番号がある
これらの事柄についてプログラミングをする時、いくつかの事柄は他のところと共通になっています。
こういった共通項目を、より抽象化した概念にまとめることができます。(以下の太字斜体部分)
- 座席
- 番号がある
- 座って寿司を食べることが出来る
- テーブル席(座席の1種)
- 呼出ボタンがある
- カウンター席(座席の1種)
共通の事柄(番号がある、座って寿司を食べる事が出来る)をまとめた新しい物事(座席)を定義することによって、プログラムが整理されます。
他にも色々なテクニックがありますが、このような方法をつかって大きなプログラムを分割していくわけですね。
整理するのが大変?
趣味で1人でゲームを作っているような場合を除いて、プログラミングの作業は複数人である程度の期間をつかって書いていきます。
複数人でルール無しで書いていると、すぐにカオスな状態になります。皆が好き勝手にあちこちに色々な機能のプログラムを書いていると、どの機能が書き終わっていてどの機能が未だなのか知るのも大変です。
1人で作っている場合でも、1週間もすると最初の頃に書いていたプログラムについては記憶が曖昧になってきます。「あれ、あの機能はどこに書いたんだっけ…」とならないようにするためにも整理のためのルールは必要です。
あらかじめ「こういう機能はここにまとめる」というようにルールが決まっていれば、そのルールに従って考えればどこに書いたか分かるからです。
整理ができていないと効率が悪いため、自分(達)で枠組みを作って効率を上げていくことが重要なのです。
現在では、そのような整理手法の中でオブジェクト指向が1番メジャーになっています。
ですので、プログラミング言語を学ぶ上では避けては通れない考え方になっているのです。
「オブジェクト指向って何?」への1件の返信