質問: オブジェクト指向の意味 こんにちは。 前から分からずに考えていたのですが、 オブジェクト指向は、抽象具体の階層を利用することで、 プログラミングに必要な概念を階層化して分類する、 ということとは、違いますか? 多分これでは違うかも・・ とも思うのですが、 上の考えからのずれとしての指摘をしていただけたらうれしいです。 つまり、上の階層概念に、足りない部分を付け加える形でのご指摘をお願いできたらと、都合が良いのですが、よろしくお願いします。 というかぶっちゃけ、長く理解できずに困っています・・
回答: #2さんと同じ意見ですが階層化は基本的な部分ではありません 例えば、「部屋に入って明かりを点ける」プログラムを書く場合、 オブジェクト指向で無い場合は if(aの部屋の場合){ 扉を押して部屋に入る;右の壁に行く;スイッチを上げる;} if(bの部屋の場合){ 扉を引いて部屋に入る;左の壁に行く;スイッチを下げる;} if(cの部屋の場合){ 扉はないそのまま入る;右の壁に行く;スイッチを上げる;} などと記述しますが オブジェクト指向の場合はどの部屋でも 部屋に入る;明かりを点ける; と一つの記述で済みます。 (扉を押すのか引くのか、右か左か、上げ下げ等を記述しなくて良い) その代わり、 部屋a:扉は押す;スイッチは右の壁;上げると入る; 部屋b:扉は引く;スイッチは左の壁;下げると入る; 部屋c:扉はない;スイッチは右の壁;上げると入る; などと記述する必要が有ります。 部屋aと部屋cは扉のところだけが違うので 部屋ac:扉は?;スイッチは右の壁;上げると入る;を定義すれば 部屋a:扉は押す;その他は部屋acと同じ; 部屋c:扉はない;その他は部屋acと同じ;と記述することが出来ます