• ベストアンサー

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

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

  • aita
  • お礼率96% (81/84)

質問者が選んだベストアンサー

  • ベストアンサー
  • agfa
  • ベストアンサー率38% (164/424)
回答No.1

こんなとこで説明すると長くなります。 下記URLでもゆっくり読み込んでください。

参考URL:
http://www.atmarkit.co.jp/fjava/devs/object01/object01.html
aita
質問者

お礼

回答ありがとうございます。 こんないいサイトがあるのですね。

その他の回答 (3)

  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.4

こんにちは。お使いの言語は Java ですか、それとも C++ ですか? (Ruby だと私的には嬉しい) オブジェクト指向(OOP, Object-Oriented Programming) の三本柱と世に言われるのは以下のものです。 1)継承 2)カプセル化 3)多態性(polymorphism. ポリモ(ー)フィズム、ポリモルフィズムとも) それぞれの説明は No.1 の方の参考 URL を読んでいただくとして、 あとは「クラスライブラリ」も入りますか。 逆説的になりますが、別にオブジェクト指向言語でなくとも OOP はできるのですよ。 (また、オブジェクト指向言語であってもこの全部を兼備しているとは限りません) ベテランのプログラマなら、C 言語でもこれらをある程度意識し、 自作のライブラリを蓄積して「差分プログラミング」を実現したり、 構造体を活用しカプセル化を図ったりしていました。 オブジェクト指向言語とは、現場で活躍するベテランプログラマの そうした暗黙の経験知を言語仕様として結実させたものです。 「ソフトウェアパターン(デザインパターン)」も、 SE の経験知をルール化したものといえましょう。 システム設計の上でよく現れるパターン、いわば定石を分類したものですね。 巷の OOP 解説書には難しいことがいっぱい書いてありますが、 そのような本の多くはエンタープライズ企業を対象にした 大規模プログラミングの手法を説くもので、 個人プログラマには直接適用できません。 プログラミングにおいて最も大切なものは何かといえば、 それは「データ」です。プログラムが解決すべき問題に対して 適切なデータ構造を決定することができれば、プログラムの半分は成ったも同然。 「アルゴリズム+データ構造=プログラム」(ニクラウス・ヴィルト)なのですから。 そして、これまではアルゴリズムの裏方に隠れがちだった 「データ」というものを舞台の上に引き出し、主役に抜擢した、 それがオブジェクト指向なのだと私は考えています。 参考 URL はオブジェクト指向スクリプト言語 Ruby の生みの親、 まつもとゆきひろさんの日記で、彼のとらえた OOP 観が語られています。 なお、「箱モデル」の題のあるものは Ruby 言語独特の仕様について 論じたものですので、今は読む必要はありません。 私には、「オブジェクトとはアイデンティティを有するもの」 というあたりが面白かった。 前橋和弥さんの「OOP の本質はマルチプルインスタンスだ」、 すなわちインスタンスや付随するメソッドは複数生成して持ち歩けるものだ という主張にも重なり合うかもしれません。 だって、アイデンティティが危機に晒されるのは同様のものが複数存在し、 本来の自分が分身と区別がつかなくなることですものね。 http://member.nifty.ne.jp/maebashi/programmer/object/index.html http://www.amy.hi-ho.ne.jp/~lepton/program/p3/prog303.html ここからはセールスマンモードになりますが、 個人ベースで OOP をするなら、Ruby を猛烈に推薦させていただきます。 (Python でもいいけれど。Perl はやめておきましょう) 騙されたと思って Ruby をインストールし、文字列やファイルをいじる スクリプトを書きまくってみてください。 自らクラスを作らなければならないことは初めはないと思います。 組み込みのクラス・メソッドだけでも十分に仕事はこなせますから。 あなたが Ruby にすっかり馴染んだ頃、OOP 解説書を開いてみると 「なーんだ、こんなことが言いたかったのか!」と目から鱗が落ちることは請け合い。 少なくとも、何が書いてあるかとっかかりすらつかめない、 ということはなくなっているはずです。 http://www.ruby-lang.org/ja/ 以上、ヘボスクリプタのたわ言でした。 さらにお聞きになりたいことなどございましたら、 ご遠慮なくリクエストを。お返事お待ちしております。 プロフェッショナルの方々、間違っていたら遠慮なく突っ込んでください^^

参考URL:
http://www.rubyist.net/~matz/?year=2003;month=3Q;category=OOP
aita
質問者

お礼

回答ありがとうございました。 返事が遅れてすみませんでした。 参考にさせてもらいます。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

オブジェクト指向は哲学的な面と、プログラム的な面と両方あって、市販本の説明は、両者はしっくり来ない。 我流での理解。なんのことはない、突き詰めると (1)プログラムコードでXXX.YYYの表現を可能にし、徹底する。 (2)XXXがオブジェクトで、YYYはプロパティやメソッドである。 オブジェクトも階層SSS.TTTを考える(構成の1部であると言うこと)。 (3)詰まるところ、メモリに実装された時の、入り口(番地に名を付けたもの)であり、機能の1塊(データ付きプログラム)をオブジェクトといっている。エントリポイントのようなもの。 (4)昔のプログラムはモジュールの先頭しか入り口がなかったが、プロパティやメソッドを設ける方式により、入り口が多(点)様化する(細切れ的になる)ので、使いまわしが効くし修正も範囲限定で出来る。 なにを言っているか判らないかも知れませんが、思い当たるふしがあれば幸いです。

aita
質問者

お礼

回答ありがとうございました。 返事が遅れてすみませんでした。

  • trozky
  • ベストアンサー率9% (32/341)
回答No.2

構造化プログラミングはご存知ですか?

aita
質問者

お礼

昔にプログラミングの経験がありますのでその辺 は分かりますが・・・。

関連するQ&A

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

    プログラム素人です。 できれば素人にもわかる書き方で教えてください。 オブジェクト指向のプログラミングとは、要は(画面などの動きの)見栄えがよければよい、それ重視で、内部でどんなごっゃなプログラムが書かれていても、見栄えの方を優先するよ、という考え方でしょうか? おおざっぱでいいので、わかりやすくお教えいただければありがたく存じます。

  • オブジェクト指向

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

    • ベストアンサー
    • Java
  • オブジェクト指向ではない指向は、何指向と言う?

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

  • オブジェクト指向とは

    プログラミングの用語を調べていて、「オブジェクト指向」という言葉を見つけたのですが、Googleで検索してみてもしっくりくるものが見つかりません。 誰かわかりやすい説明をお願いします。🙇

  • オブジェクト指向、理解しやすい?

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

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

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

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

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

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

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

  • オブジェクト指向?

    最近、プログラムを始めようと思い、色々質問を見ていたら、 オブジェクト指向という言葉がすごいいっぱいありました。 ちょっと調べてみましたが、よくわかりませんでした。どういう事なのでしょうか? 教えてくれたら嬉しいです

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

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

    • ベストアンサー
    • Java

専門家に質問してみよう