オブジェクト指向
これまで何回か目にし、その度に調べてるけどよく理解できていません。
こういうのって、実務経験積んでくうちに理解できてくるものなんじゃないのかな・・・と
現状あんまり理解できていない私としては思います。
Rubyはオブジェクト指向言語、JavaもJavascriptもそうらしいです。
で、オブジェクト指向って一体何なのか。。
効率よく開発するための考え方
何かのコード記述のルールがあって、それがオブジェクト指向っていうわけではなく、、
「効率よく開発をするための考え方や概念」だそうです。
特徴①カプセル化
「オブジェクト」というものが、データやメソッドなんかを一つのカプセルにまとめてしまうようなイメージです。
カプセル化されてしまうと、外からは中がどうなってるか見えません。
情報がカプセルにより「隠されている」これがカプセル化です。
カプセル化することで他からの影響を受けにくく、カプセルごと分けて考えることができます。
特徴②継承
同じようなプログラムはまとめていこうという考え方。
よく例に出てくるのが車ですね。
車という上位クラス(スーパークラス)から派生したものが、
乗用車やバス、トラックです。←下位クラス(サブクラス)になります。
乗用車もバスも結局は車なので、上位クラスの特徴を受け継いでることになります。
これが継承です。
特徴③ポリモーフィズム
同じメッセージを複数のオブジェクトに送った結果それぞれが、
固有の処理を行うこと。これをポリモーフィズム(多態性といいます。)
車でいうと、バスはバスの機能をするよねーっていうことです。
まとめ
カプセル化・・他から影響受けない、破壊されない
継承・・同じようなプログラムはまとめていこう
ポリモーフィズム・・汎用性を持つ