オブジェクト指向とは
オブジェクト指向とは、同じようなプログラムを1つに固めておき、使いまわせるようにしようという考え方です。具体的に言うとクラスとインスタンスというものです。クラスで1つの設計書を作っておきそれをインスタンス化、つまり実体化させることで共通する部分や似た部分を1つで管理することが出来るのです。クラスやインスタンスについて詳しくはhttps://pgse.jp/glossary/class/を読んでください。
1つにしておけばそれを使っていくつもの同じような処理を作ることが出来ます。これを継承といいます。
1つに固めておけば、別の処理からはそのプログラムの中身については気にすることなく固めたものを呼び出して処理を事項出来ます。これをカプセル化といいます。
1つにしたとしても、ちょっとここは変えたいとかいう事にも対応できます。これをポリモーフィズムといいます。
オブジェクト指向の例
例えば車を作るということで考えてみます。kurumaクラスでタイヤを4つ使うとか、エンジンを配置するとか、座席や燃料タンクだとかを設計しておきます。それをもとにセダンやトラックなどの車を作成します(継承)。
今回、新たに自社で作っている車にエアコンを標準装備しようと決めたとします。※あくまでも例です。たいていの車にはエアコンありますが、今回の例ではいままで装備していなかったと考えてください。
その時に、いちいちセダンやトラックのインスタンスに対してエアコンを装備するなんて言う処理を書くのはメンテナンス性も落ちますしコードの量ばかり増えますしなによりも面倒くさいですね。
そこで、kurumaクラスに対して車にはエアコンをつけるという設計を足せば、おのずとセダンにもトラックにもエアコンが装備されるようになります(ポリモーフィズム)。実際の物体とプログラムで違うのは、実際の物体だと作った後におのずとエアコンは付け足されませんが、プログラムであればクラスに追加したものは自動的にインスタンスにも追加されます。
実際に車に乗って運転する使用者、つまりこのプログラムを呼び出す側はエアコンを装備するなんて言う処理を気にすることなく、車に乗ってエアコンをつけることができます(カプセル化)。
コメント