【第1回オブジェクト指向講座】オブジェクト指向って結局何なのさ

オブジェクト指向講座目次

次回 【第2回オブジェクト指向講座】継承とかカプセル化とかの前に

こんにちはyoship1639です。

この講座では、オブジェクト指向がいまいちよくわからない方や、プログラミングで活用できている気がしない方に向け、私の経験則から考えそしてたどり着いたオブジェクト指向プログラミング(OOP)をどの様に捉え、どの様に活用していくべきかというノウハウを皆様と共有できればと考えております。
そして、この講座を通して少しでもオブジェクト指向プログラミングを知ってもらい、実際に活用出来る様になっていただければと考えております。

今回のテーマは「オブジェクト指向って結局何なのさ」です。

  • オブジェクト指向のよくある捉え方

さて、いきなりですが「オブジェクト指向」と聞いたら皆様は何が思い浮かびますか。

「クラスを継承して〇〇」とか「データのカプセル化」とか「ポリモーフィズムで抽象化」とかがよく聞くフレーズで、基本的にその辺りが思い浮かぶのではないかと思います。

そしてなぜそのフレーズばかりが思い浮かんでしまうのかというと、ほとんどのサイトがオブジェクト指向の説明をするとオブジェクト指向の3原則である「継承」「カプセル化」「ポリモーフィズム」をベースに説明をしていくためその用語ばかりが目についてしまい、オブジェクト指向が継承とかカプセル化で出来ていると錯覚し、イメージがそういうものだと定着してしまうからではないでしょうか。

上の文章を読めば分かる通り私はそのようなイメージには否定的で、オブジェクト指向の本質からかけ離れて一部分だけを見ている状態であると思っています。

オブジェクト指向は「継承」「カプセル化」「ポリモーフィズム」で成り立つものではありません。それらはただの手段です。

「継承」「カプセル化」「ポリモーフィズム」は手段で、オブジェクト指向の目的ではありません。

これらを使えばオブジェクト指向になるというのは誤った考えなので気を付けてください。

  • オブジェクト指向って何?

じゃあオブジェクト指向って何なのさと疑問に思われると思います。

簡単に結論を申しますと、オブジェクト指向は「人がプログラムを組み易く、修正し易く、拡張し易くするための手法」です。

これも結構当たり前のように言われていますがこれが私の考えるオブジェクト指向の本質です。思った以上に大事です。

何が言いたいのかというと、「継承」「カプセル化」「ポリモーフィズム」を使っても「プログラムを組み易く、修正し易く、拡張し易く」することを意識していないと、何の意味もないということです。

「プログラムを組み易く、修正し易く、拡張し易く」ということを意識しないで継承だとかカプセル化だとか使っても無駄です。見た目的にオブジェクト指向っぽくなるだけで中身は手続き指向と何も変わらなくなります。

勉強する気がないのに勉強しても内容が頭に入らないのと同じです。

少し整理します。

オブジェクト指向は、人がプログラムを組み易く、修正し易く、拡張し易くすることを目的としたプログラミング手法であり、継承・カプセル化・ポリモーフィズムはそれらを達成するための手段である。
プログラムを組み易く、修正し易く、拡張し易くすることを意識して継承・カプセル化・ポリモーフィズムを使わないとオブジェクト指向の恩恵は得られない

とても大事な概念なので、覚えておいてください。

次回 【第2回オブジェクト指向講座】継承とかカプセル化とかの前に

「【第1回オブジェクト指向講座】オブジェクト指向って結局何なのさ」への2件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です