• ベストアンサー

オブジェクト指向について教えてください

gachincoの回答

  • ベストアンサー
  • gachinco
  • ベストアンサー率20% (32/156)
回答No.6

オブジェクト志向言語とは ■型が定義できる - クラスが定義できる ■「継承」ができる みたいな感じだったと思います。 このような言語仕様がある言語は、プログラムの再利用ができ、インターフェースを定義することができ、プログラムのユーザー(プログラムのユーザーってのは開発者ね)にとって開発が効率的になります。 従ってオブジェクト指向ってのは、見栄えだのアクターだのの説明が先行しがちですけど、一番知らなければならない考え方は、分類と包含だと思います。この分類と包含により、効率的な開発ができるんですね。 例)分類の考え方を、いくつかのクラスを定義した例で示します。 ---- 以下、定義 ---- 商人を定義する ・商人から今月の売り上げを聞く ・商人から商品を買う 商人を継承し、魚屋を定義する ・魚屋から売っている魚の種類を聞く 商人を継承し、肉屋を定義する ・魚屋から売っている肉の種類を聞く 肉屋と商人を継承し、スーパーを定義する ---- ここまで、定義 ---- 商人は上で定義された2つの行動を取ります。(・・と定義します。) 魚屋も商人に含まれますよね?魚という商品を扱うので・・・ つまり、魚屋は商人の特性も持つことができるんです。 ここで、オブジェクト指向の「継承」を利用すれば、以前定義した商人の行動をそのまま魚屋に当てはめることができますよね? 魚屋の商人の部分は、新しく定義する必要がないので、開発者としては定義するという作業が減ります。 これがオブジェクト指向の基本かと思います。 >内部でどんなごっゃなプログラムが書かれていても、見栄えの方を優先するよ、という考え方でしょうか? おそらく、質問者さんが言われてる 「見栄えの方を優先」=「インターフェースに従って実装」 ということを指しているのかな? だから、「見栄えの方を優先するよ」というよりも「定義は必ず守れよ」って感じかなぁ。 つまり、関数の引数と出力を決めて、とりあえず関数の見栄えの定義だけ行なう。 この関数の見栄えの定義さえ守っていれば、内部的にどのような処理をしても良い。 っていうのが正しい認識だと思う。 例えば、 ある関数fがプログラムの100箇所で参照されているとする。ところが、開発途中で関数fの見栄えの定義(引数と出力)を変えなければいけなくなった。この場合、プログラム中の100箇所を書き変えないといけなくなるよね?非常に面倒くさい。 でも、関数fの内部的な処理を変えるだけなら、プログラム中の100箇所を変える必要がないから修正が楽ってこと。 そもそも、巷でオブジェクト指向という言葉だけが先走ってて、定義自体あいまいなんだよね。 でも、根底にある考え方は、集合を分類して、各集合の特性を定義して、その特性に反しないように各集合に対して処理を施す。 こうすることで、多くの利点がある。 ■データと処理が一括で扱える⇒プログラムが読み易い ■見栄え(集合の特性)を意識する⇒プログラムの途中修正が少ない ■継承できる⇒再利用性大 っつーことで、要は、開発者がいかに楽をするか?っつー動機から生まれてる。 >内部でどんなごっゃなプログラムが書かれていても、見栄えの方を優先するよ、という考え方 ってのも一応合ってると思うけど、オブジェクト指向を利用することを考えると、イマイチな考え方かな。

ooiei
質問者

お礼

わかりやすい説明です。ありがとうございました。 要するにプログラマーが書きやすい、やりやすい(たとえば引き継ぎのプログラマーがソースを見たときなど)指向ということでしょうか?

関連するQ&A

  • オブジェクト指向のプログラム??

    「オブジェクト指向のプログラム」という言葉を プログラミングの話をしているときに聞きますが よくわかりません。 どなたか素人でもわかるように教えて下さい。

  • オブジェクト指向ではない指向は、何指向と言う?

    プログラミングでオブジェクト指向ではない指向は、何指向と言うのですか?

  • オブジェクト指向について

    C#でプログラミングをしているのですが、オブジェクト指向を一切使わずに作っています。 作っていくにしたがってツールが重くなってきたのですが、オブジェクト指向を使ってい書いたほうがアプリケーションは軽くなりますか?

  • オブジェクト指向について

    オブジェクト指向に対応したプログラミングはいっぱいあるけどオブジェクト指向の考え方を考えた人はだれなのですか?!

    • ベストアンサー
    • Java
  • 【オブジェクト指向について】

    【オブジェクト指向について】 こんにちは。初めて質問をさせていただきます。 さて、ただいまVBを勉強中なのですが、オブジェクト指向のところで躓いてしまいました。 質問したい事は以下の点です。 (1) オブジェクト指向の理解について   オブジェクト指向とは、プログラミングをするときに変数や機能などをクラスというものに格納しておくことで、プログラミングを円滑にすすめるための概念であると理解していますが、この理解は正しいのでしょうか? ご回答お待ちしております。よろしくお願いいたします。

  • オブジェクト指向とは

    オブジェクト指向の本をたくさん読んでみましたが 全部書いてあることが難しくていまいちピンときません。 要は簡単にいうと、クラスを作ってその中にメソッドを 作ってロジックの中でその中のクラスを使い分けていく という考え方がオブジェクト指向というのでしょうか? 簡単でいいのでわかりやすくオブジェクト指向というのを教えていただけないでしょうか?友人に聞くとオブジェクト指向を説明すると2時間はかかると言われてしまいました。

    • ベストアンサー
    • Java
  • オブジェクト指向、理解しやすい?

     最近、Javaの解説書や解説サイトを見ていて、しばしば、「Javaは完全なオブジェクト指向だから理解しやすい」といった記述を見かけます。(「プログラムが見やすくなる」とかではなく)  Javaに限った話ではないのですが、個人的に、オブジェクト指向の概念は、プログラミング初心者の最大の関門ではないかと勝手に思っています。僕はPHPから入ったのですが、ある程度基本事項をマスターした後も、オブジェクト指向だけは長い間苦手としてきました。(最近やっと慣れてきたところです。)  そこで伺いたいのですが、最初にやったプログラミング言語がオブジェクト指向だったという方、オブジェクト指向の概念は、 1.わかりやすかった 2.そこでつまずいた 3.特に意識せずに通り過ぎた 4.その他 いずれでしょうか? ※最初にJavaについて書きましたが、これはただの例なので、オブジェクト指向言語全般についての質問であるととらえてください。

  • オブジェクト指向の教え方

    新入社員にJavaを教えているところなのですが、オブジェクト指向プログラミングをどのように教えていいか困っています。 全員がC言語研修を受講済みで、さらにJava言語も、継承やオーバーロード、例外まで一通り教えて、一応理解しています。 そこで、次のレベルとして、C言語風のプログラミング(「プログラム=関数の集まり」の考え方)から、オブジェクト指向(「プログラム=オブジェクトの集まり」の考え方)に意識改革させたいところです。 問題領域をオブジェクトの集まりとしてとらえ、そこからクラスを抽出していく、という説明がよくありますが、 「何をオブジェクトにするのか」「どのようにクラスを抽出したらいいのか」の部分を詳しく教えたいのですが、どのように説明したらいいでしょうか。また、参考になるWebサイトなどありませんでしょうか? 自分が普段作るときは、ほぼ「勘」でクラス設計していますので、それでは教えられなくて困っています。よろしくお願いします。

    • ベストアンサー
    • Java
  • オブジェクト指向

    Javaプログラミングを少し勉強し始めました。 そこで、オブジェクト指向という言葉が出てきました。 オブジェクトを作る利点というか意味はどのようなところにあるのでしょうか? 比較的簡単なプログラムなら、変数とメソッドで表示できると思うのですが・・。 ・コードが読みやすくなる ・実行速度が速くなる などの利点があるのでしょうか? なるべく分かりやすく解説してもらえればと思います。

    • ベストアンサー
    • Java
  • オブジェクト指向プログラミングについて

    VisualBasicを対象にしたオブジェクト指向プログラミングに関する参考書、Webサイトなどはないでしょうか。 現在、クラスモジュールなどを多用しオブジェクト指向プログラミングを実践しているつもりですが、あまり勉強したわけではないのでいまいちよくわからないです。 (オブジェクト指向プログラミングのメリットとデメリットなど)