##はじめに
オブジェクト指向とは**概念だ!**と言われても何を言っているかさっぱり分かりませんでした。
自分の中でも整理をさせたいのでアウトプットします。
オブジェクト指向は・・・
簡単に言えば、「モノ」 と 「操作」に分けてプログラムを設計していく事である。
##車で例えるなら・・・
モノとは・・・エンジンが1つある事、タイヤが4つある事、ナンバープレートがある事
操作とは・・・鍵をつけるとエンジンがつき、アクセルを踏むと走り出す
車を何千万台プログラムしてくださいってなったら相当苦痛である事が分かります。
またブレーキを踏んだら止まる事にしようとなったらまた何千万台分追加でコードを記述しなければなりません。
そうならなないためには**「車」**というモノをあらかじめ定義しておく(設計しておく)と便利だと分かります。
パトカーを作るとするなら・・・
・車を定義
・色は白黒
・サイレンをつける
大雑把ではありますが、最初に定義しておく事でモノを短縮して作る事が出来ます。
##オブジェクト指向で覚える事
3つの言葉が出てきます
カプセル化
継承
ポリモーフィズム
こちらもできるだけ例えで説明します。
1.カプセル化
他のプログラミングからできるだけ、変更できないようにする事です。
「車」というモノとして使い回す事が出来ますが変更したくない部分があると思います。
例えば、アクセルは1つで踏むと進む・・・
このプログラムを他のプログラムから変更できないように設定して守る事がカプセル化です。
2.継承
同じようなプログラミングを1箇所にまとめてコードを再利用しやすくする。
先ほどパトカーを作ったように、車の設計書を再利用して色などを変えて簡単に作る事です。
3.ポリモーフィズム
日本語訳だと多様性などと訳されます。
意識をしないで当たり前のことと思うことがあると思います。
アクセルは右足で踏む、ハンドルを右に切ると右に車が曲がるなど。
とても理解に苦しむのでプログラミングで簡単に言うと同じ名前のメソッドを複数のクラスで使用できるようにし、そのメソッドを通して、動作を切り替えることができる事です。
アクセルを踏んで動くというメソッドを使ったとして
前に動く
右に動く
左に動く
##終わりに
言葉にして書いてみてもまだまだ理解できていないなと感じました。
日々学び、知識を
増やしていきます!