OOPとはオーバーライドとオーバーロードと継承とデータ隠蔽のことですか

「考え方云々というヤツ」の典型例なわたしです。

オブジェクト指向とは、
具体的に言えば、
オーバーライド、オーバーロード、継承、データの隠蔽(カプセル化
のことですか?

オーバーロードは違うけど、でも、そういう認識で
いいんじゃない?

「具体的に言えば」っていう断りも入ってるし。

こういう話をすると「オブジェクト指向は考え方だから
云々」いうヤツがいるけど、もっと即物的に考えても
いいし、そのほうが即効性がある。

http://dgames.or.tp:23001/entry/view/20090810

こう質問されたら「考え方云々」と言ってしまうと思うわたしだけれども、なるほど 結局プログラミングはプログラミングして学ぶしかないわけで、「そういう認識でいいんじゃない?」は そうかも、と思います。「考え方云々」言ってしまいたいとき、結局わたしが蘊蓄たれたいだけなのか、ということは、思う。

むしろ 即物的で責めるならば、いっそ もっとシンプルに「クラスを使ってプログラムを組む事」がいいのかも。この視点でよいのなら、結局どれもクラスの機能です。C with Classes。

となると前橋さんのOO講座は、アレ自体は絶対 OO ではないと思うけれど、 こういう考え方(教え方の方便と即効性)としてアリなのかもしれないかもしれない*1。うにゅぅ。


* * *


一方で、こういう質問をする人が求めているモノってなんなのかな、とも考えてしまいます。そうすると、一つの動機として、体得しようにもマネる相手が近くに居ないとか、そうやって 右も左もわからなくなって、煙煙羅 に囲まれてしまって、迷ってる。だから歩き出す方向を探すため、灯台が欲しいんじゃないかなっ、というのがあるのかな?と思っちゃう。


プログラミングだから、結局 最後は 「即物的 + あとは実践あるのみ!」・・で体得することになるのだけれども、近くに誰かの背中がないときは*2、「『実践』でわたし本当に『前』に進んでいるのかな」という不安になります。即物的なことは濃霧の中でも「見える」のだけれど、それは「近いから見える」だけで道しるべにならない、だからそれを見つめてても迷って方向を見失ってしまう。

そんなとき、比喩ででもなんででもいいから、遠くの目標への方角をつかむことが効果的じゃないかな、と個人的には思っています。

そこら辺を意識して書いたのが、OOP用語ひとめぐり なのですが、いまいち受けが良くないのですよね...orz むぅ、難しい。


* * *


だから、足元から遙か彼方まで まったく軸のぶれない Smalltalk環境が わたしは好きです。一本道なので迷いようがないと言いましょうか。わたしが OO樹海で盛大に迷いまくっていた時、Smalltalk と sumim さんのドキュメントが灯台で、とてもありがたかったです。

*1:ただ「方便」や「途中の解」ならば後でそこらへんを回収しにいかないとマズイのじゃないか、とはやっぱり思う

*2:物理的・・という意味じゃない「近く」だから、背中が無いと嘆くのは甘えかも、ですが