#はじめに
初学者の方にとってオブジェクト指向は参考書でも度々目にするが、そのまま調べずに終わっていませんか?
また、オブジェクト指向わかった気になっている方もいると思います。
今回はオブジェクト指向について分かりやすくまとめてみましたのでご覧ください!
##この記事のターゲット
- プログラミング初学者
- オブジェクト指向のプログラミング言語を学習している方(Ruby,JAVA,C++など)
##オブジェクト指向プログラミングとは
「モノ」を組み立てるように表現して、コンピュータに動作をさせる
現在ではオブジェクト指向言語が主流になっていますので、プログラミングをする上でオブジェクト指向の概念を押さえておくことは非常に重要です。
たとえば、以下のプログラミング言語はすべてオブジェクト指向言語です。
- さまざまなプラットフォームで動作するJava
- Webページに動きを与えるRubyやPHPやJavaScript
- Mac OSやiOSのアプリ開発で使われるSwift
- 商用のプログラミング言語として定評のあるC++
- WordやExcelのマクロとして使用されているVBA
##分かりやすく説明すると.....
オブジェクト指向プログラムとは、
モノと操作を分けて完成(アプリ)を作り上げること
例えると
オブジェクト(モノ) →リモコン
操作 →ボタン、電池
みたいな感じです!笑
メリット
-
効率よくプログラムを設計、開発できる
webアプリのボタンを例にすると、
モノと定義したボタンの場合、同じようなボタンがあった場合、ボタンの色を変えれば、他の削除や編集ボタンを作ることができる。 -
不具合の原因を特定しやすくなる
モノと操作にオブジェクト思考で分かれているので、どこでエラーが起こったのか(モノのコード)、
どんな操作をした時か(操作のコード)がわかりやすくエラーが特定しやすい。 -
プログラムの使用が変わっても対応しやすい
例えば、100個のボタンがあり、ボタンの幅を400px→300pxに変えたとします。100個のボタンを修正するのはだいぶ手間になる。
しかし、オブジェクト指向で定義した「ボタン」の横幅を変更するだけで、全てのボタンのサイズが変わる -
オブジェクト指向を使えば、開発した後も時間をかけずに修正することができます。
##覚えておきたいキーワード
1.カプセル化
→他のプログラムからできるだけ変更できないようにする仕組み
ボタンを例にすると、全ボタンで高さと横幅を変えたくないとすると、他のプログラムから簡単に設定して守るのが、カプセル化です。
2.継承
同じようなプログラムを1箇所にまとめてコードを再利用する仕組み
→似たような処理を一つずつ書いていると、例えば「データを登録する処理」のコードを修正することにより時間がかかってしまいます。
継承を使えば、登録、更新、削除などのカテゴリーとしてコードをまとめておける
カテゴリーとしてまとめておけば、新しい機能を作るときに同じような処理を使うことも可能。似たような処理がないか確認もしやすくなる。
3.抽象化
重要な要素や共通な要素を抜き出して、他は切り捨てる考え方
→車に例えると
どんなサイズ?どんなデザイン?などの聞かなければわからないことではなく、
エンジンがついている。ハンドルが4つついているなどの必ず必要な共通要素
何が言いたいかというと、「詳しいことは決まってないけど、開発するうえで必ず必要な要素は○○だな」と捉える。
4.ポリモーフィズム
継承したコードの一部を変更して利用するための仕組み
コードの一部のみを変更して利用できるのがポリモーフィズム
→例えばボタンの色だけを変えて登録、更新、削除のボタンを作ったことが、一部を変更し継承するという意味になります。
##終わりに
もし、オブジェクト指向を理解せずにプログラミング学習していた人も、この記事を読んであの部分がそうだったのかと気づくはずです!
皆様のご参考になれば嬉しいです!
##参考記事