このページをごらんになっている方は、おそらくプログラミング言語のJavaを学習していて、その中で「オブジェクト指向」というものに悩んでいる方でしょう。
オブジェクト指向、なぜ難しいのでしょうか。
イメージがプログラムと継ながらない!
オブジェクト指向について書かれているテキストを読むと、たいがい「オブジェクトは物」「車がスーパークラスならタクシーやトラックはサブクラス」といった説明が書かれています。
この説明そのものは分かるのですが、いざJavaでプログラミング! という時に「じゃあJavaでオブジェクト指向使うにはどうすればいいの?」ということになってしまいます。
つまり、「オブジェクト指向」という概念的な部分と「Javaプログラミング」という現場的な部分が継ながらないわけです。
この違いがオブジェクト指向を分かりづらくしていると言えます。
わざとわかりにくいのかも?
オブジェクト指向について解説しているテキストには、「わざとわかりにくくしている」という面もあります。
オブジェクト指向はIT関係全般に関わるとても大きな概念です。
つまり、オブジェクト指向は「Java」だけに限定されない考え方です。OSの構造から、システムの設計まで、今では幅広い分野にオブジェクト指向が用いられています。
そのため、現場に即した説明をしてしまうと大きな概念が理解できないという懸念が生まれます。そのために、あえてぼかして書いている場合があります。
また、オブジェクト指向そのものがぼけた概念という面もあります。
オブジェクト指向には、「オブジェクトに指示をすればオブジェクトが勝手にやってくれる」というある意味テキトーな考え方があります。実際に何かをするのは指示先のオブジェクトで、それを指示元は完全にはコントロールできない、という考え方です。
このような考え方があるので、オブジェクト指向の基本的な傾向として「あいまいなもの」という面があります。
以上のようなオブジェクト指向の特性に、教育者側のエゴ・無理解が重なり、オブジェクト指向はわかりにくくなっている、と言えるでしょう。