こんにちは。
本日はjavascriptで多くの方が苦手意識を持っているであろう「オブジェクト指向」についてご紹介をさせていただきます。
- メソッド(Method):命令
- パラメーター(Parameter):調整値
- プロパティについて
- インスタンス
- オブジェクト
- クラス
- 継承
- ポリモーフィズム
今回は上記を犬を例に挙げて分かりやすくご紹介させていただきます。
メソッド(Method):命令
プログラムを作るという作業で最も重要なのは「メソッド」を操るという点にあります。
犬で言えば「お手」や「ついてこい!」など言うことを聞かせる命令に値します。
画面に文章を表示しろ、文章の中から特定の文字を探し出せというのもメソッドの1つですね。
<script> document.write('JavaScriptを勉強中です'); </script>
ここでいえばwriteがメソッド(動作)に値します。
windowというのは今表示をしているオブジェクトであり、documentはそのウィンドウ内を表すオブジェクトとなっています。
パラメーター(Parameter):調整値
画面に文章を表示しろという命令のときに、「なんという文章を表示するか」これを指示するのがパラメーター。
とってこいという命令をした場合、おもちゃをとってくるのかボールをとってくるのか分からない。
「とってこい」がメソッドで「ボールを」というのがパラメーターに値する。
<script> document.write('JavaScriptを勉強中です'); </script>
ここでは”Javascriptを勉強してます”がパラメーター(調整値)に値します。
戻り値について
ボールをとってこいという命令に対して犬がボールを持ってきてくれて渡したら「戻り値」になります。
例えばJavascriptだと「足し算をしろ」「今日の日付を教えろ」といったメソッドがあります。
ここで「足し算の結果」や「今日の日付」を返してくれるのが戻り値になります。
プロパティについて
ウィンドウはその位置や大きさといった情報をもっています。
例えばウィンドウだとX/Y座標や幅、高さがプロパティに値します。
犬を例にあげると毛の長さや体重になりますね。
毛を駆って長さの調整をしたり、体重を増減させるのがプロパティを変化させているということになります。
インスタンス
今この画面に表示されている、このウィンドウと具体的に示せる存在がインスタンスになります。
メソッドやプロパティはインスタンスに対してしか唱えることができません。
オブジェクト
objectといえば「物」という意味になります。
例えばこれを例に挙げると「犬」自体がオブジェクトになります。
プログラムの場合いえば「ウィンドウ」や「ボタン」なども全てオブジェクトの1つとなっており、オブジェクトが実体となったものがインスタンスになるという考えで間違いないです。
オブジェクトとプロパティ
どのような内容がメソッドで、どのような内容がプロパティなのかはオブジェクトによって異なりますが、プロパティの特徴は今の状況が取得できるという点があります。たとえば下記の通り。
let display=document.geElementByID("time"); display:innerHTML="10時23分57秒"; alert(display.innerHTML);
すると警告ウィンドウは先ほどの時刻に表示され、innerHTMLプロパティが現在の状態を教えてくれるようになります。
クラス
すごーく分かりやすく、犬で言えば柴犬、ダックスフンド、チワワなどの種類。
分かりやすく言えばクラスは「組」のようなものですね。
継承
プードルに対するトイプードルみたいなのが良い例になります。
クラスはこのように後から改良して別のクラスを作ることも可能です。
トイプードルはプードルを継承しており、プログラムでも他の用途にも使えたり改良したりできるよう別のクラスを作ることができたりします。
ポリモーフィズム
「多様性」と略されることが多いです。
そのまま説明すると、「メソッドがパラメーターやデータ型の異なる複数の実装を持ち、使い分けられる」ことになります。
少し強引に例えれば、柴犬なら「ワンッ」と鳴きチワワなら「キャンッ」と鳴くなどそのクラスにあった振る舞いをするのが多様性になります。
まとめ
いかがでしたでしょうか。
本日はjavascriptのオブジェクト指向について、犬に例えて記事をまとめさせていただきました。
- メソッド(Method):命令
- パラメーター(Parameter):調整値
- プロパティについて
- インスタンス
- オブジェクト
- クラス
- 継承
- ポリモーフィズム
なかなか難しいjavascriptですが、覚えれば一気に仕事の幅が広がります。
共に頑張りましょう!
この本オススメです。