オブジェクト指向

 オブジェクト指向というのは、説明するのがたるいぐらいだが、結局は対象をモノとしてとらえ、属性と、それを操作するという概念に分割し、モノ同士が操作して、属性を変更して処理を行うという感じだろうか。
 これですら、やっぱり分かりにくい。まだ1年もオブジェクト指向を勉強してないが、「ヒトコトで誰にでも分かるように説明しろ」といわれたら、激しくこまるだろう。
 先日、研究室で言われた質問が「オブジェクト指向でどういう風にクラスに分けるのか分からない。」うーん、私もわかりません。と即座に返答。まあ、それだけじゃ答えてないのに等しいのでいろいろ言ってみる。経験が必要だとかセンスだとか。オブジェクト指向ってのを良く理解して、Java言語でそれがどういった形で表現されているかを紐解く必要があるんだろう。それにしても、多様に抽象化できてしまうので、わかりずらい。状況に応じてどういうクラスがいいのか変わってくるとは思うが、どうわけるかって改めて聞かれると・・・。
 方法としては、動作を文章にして名詞をうんたら動詞をうんたら。あと、どの変が拡張変更されるかを考えて、うまく継承するようにっと。もう、意味分からんね。こういうのに明確に自信を持って答えられるプログラマになりたい。
 知識は必要だけど、こういうのはそれと違った感覚が必要になっちゃうから。そういうが結構楽しかったりするのだ。