読者です 読者をやめる 読者になる 読者になる

わかった気になれるオブジェクト指向講座

プログラム

オブジェクト指向について後輩に質問されて、解説してたら興が乗ったのでブログ記事としてまとめてみる。

オブジェクト指向で必要なのはキーワードは6つだけ!

オブジェクト指向は雰囲気を掴めば勝ちです

まずは各キーワードのざっくりした説明

オブジェクト

ものとか ひととか 概念とか。オブジェクト指向の基本単位。

f:id:alfe1025:20140718144535j:plain

クラス

共通の性質を持つもの。Twitterでいう「クラスタ」とほぼ同義だと考えていいよ。「ほ乳類クラスタ」とか「艦これクラスタ」とか「のんのん難民クラスタ」みたいな。

f:id:alfe1025:20140718144545j:plain

継承

クラスタの包括関係のこと。「のんのん難民クラスタ」も「ごちうさぴょんぴょんクラスタ」も「深夜アニメクラスタ」に入りますよね。なので、「深夜アニメクラスタ」の性質を「のんのん難民クラスタ」と「ごちうさぴょんぴょんクラスタ」は持っているはず!というのが継承。「のんのん難民クラスタ」は「深夜アニメクラスタ」を継承した、とかいいます。

f:id:alfe1025:20140718144555j:plain

メッセージ

関数呼び出しみたいなの。あるオブジェクトから別のオブジェクトに「この仕事やってくれ」と伝えること

f:id:alfe1025:20140718144616j:plain

カプセル化

みんなが「このオブジェクトはこの仕事をやってくれる。どうやってやるのかは知らないけど」と思うこと。

f:id:alfe1025:20140718144625j:plain

ポリフォーリズム

このクラスを継承した人は「***」機能を持ってるよ。「***」の仕方は、人それぞれだけど。みたいなこと。

f:id:alfe1025:20140718144632j:plain

f:id:alfe1025:20140718144638j:plain

で、オブジェクト指向だと何がうれしいのか

一番うれしいのはプログラムの書き換えが楽になること。 キモになるのは、カプセル化とポリフォーズム。

カプセル化の例だと、質問相手がどういうアルゴリズムで仕事を行っているのかを考えなくても、聞けば答えてくれる。

ポリフォーズムの絵の例だと、同じクラスタの人であれば質問相手を変えても答えてくれる。

つまり、命令のぶん投げとか、命令相手のとっかえとかが簡単にできるのがオブジェクト指向なのです!

個々のオブジェクトを擬人化して、オブジェクト達がどういう風に動いていくのか、を考えながら設計するとオブジェクト指向っぽい感じになると思います。