JavaScriptのオブジェクト指向
こんにちはあっくんです。最近、肌が荒れすぎて、対応できていません。結構なつらみです。自分の免疫にプログラムされてる肌荒れというコードを書き換えて、健康になりたいです。脳というエディターに、自分で健康になるというコードを書き換えれたらいいのになーって思います。頑張れ、僕の脳、そして細胞。
JavaScriptのオブジェクト指向について、いっしょに やっていきましょう!
オブジェクト思考とは?
オブジェクト思考とは、大きなプログラムを効率よく開発して管理する手法です。
オブジェクト思考はものやものや対象という意味です。
4つの特徴があります。
- カプセル化
- クラスとインスタンス
- 継承
- 多様性
カプセル化
プログラムの一部をモノに見立てて、関連するデータや処理(関数)をひとまとめにします。そして、外部とのインターフェースになる値や関数を一部公開して、残りは隠蔽します。
例、自動販売機です。利用者はお金を入れて、商品を受け取る。自動販売機は中身を交換しても、利用する人は気にせずに使用が可能です。
プログラムは外部の接点以外は、自由に中身を変更できます。中身を変更しても外部に影響がありません。
クラスとインスタンス
テンプレートととなるクラスがあり、そこから実態化したインスタンスを作り、データをあつかいます。インスタンスはクラスで定義した関数も使えます。
例、自動販売機
機械の設計図がクラス。
機械を製造がインスタンス化。
実際の機械がインスタンス。
継承
クラスは継承してあたらしいクラスを作れます。元になったクラスは親クラス、新しいクラスは小クラスと呼ばれます。小クラスは親クラスの特徴を全てもっており、その上で、一部のデータや昨日が変わったり、新しいデータのや機能が加わったりします
例、車
元の車種が親クラス。
改良が、継承。
新しい車種が小クラス。
多様性
多様性あるいはポリモーフィズムと呼ばれます。異なるオブジェクトが同じ関数をもっており、それぞれ内部では、違う処理を行うことを指します。
例、蛍光灯のスイッチを押すと、LEDのスイッチを押す。同じ命令で中身が違います。
JavaScriptのオブジェクト指向
JavaScriptはES6(ES2015)からクラスの仕様が入りました。大規模なプログラムを、オブジェクトトという形で構造化して書くことができます。
JavaScriptのクラスを使ったオブジェクト指向プログラミングでできること。
- クラスからインスタンスを生成できます。
- new演算子でインスタンスのオブジェクトを生成できます。
- インスタンスメソッドが使えます。
- 静的メソッド、静的プロパティが作れます。
- 継承ができます。