• 締切済み

オブジェクト指向をひたすら練習したい

書籍などでは大体3、4個のオブジェクト指向の例があると思いますが、 もっと多くのパターンや量のオブジェクト指向の問題を練習したいのです。 http://www.yc.musashi-tech.ac.jp/~junko/Practice/PostOffice/PostOffice-DomainModeling-Answer.html このサイトの問題のように、回答付きの問題をたくさん解きたいです。 そのような解説というより(あるに越したことはないですが)、 ただ問題と回答が多く載ってる書籍やサイトなどはあるのでしょうか?

みんなの回答

  • KDASH-XP
  • ベストアンサー率46% (63/136)
回答No.1

デザインパターンですが http://www.hyuki.com/dp/dpinfo.html とかいかがでしょう? (どちらかというとプログラミング的なイディオムに近い感じですが) あとはUMLやデータベースのスキーマ設計などを調べると、割とオブジェクト指向...というよりデータ構造解析に近いような要望に見受けられたので、そういった方面かな?と思いました。

takagoo100
質問者

お礼

ご返答ありがとうございます。 そうですね、自分自身オブジェクト指向をあまり理解しきれてないので そのような分類なのかは分からないですが、たぶん仰る通りだと思います。 ただそのサイトは参考になりました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • オブジェクト指向とは何ぞや…

    JavaScript自称初級者ですが、未だに「オブジェクト指向」の意味をつかめず困っています。 書籍やウェブで解説しているのをいくつも見て、その文章は理解出来ているのですがそこにある本質がどうしても飲み込めない状況です。 こういう状態の者に理解できるような説明をもらえたら嬉しいのですが難しいでしょうか。 どなたかお願いします。

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

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

  • オブジェクト指向

    Perlの学習をはじめて2日目の初心者です。 Perlにおいて、オブジェクト指向をもちいて開発をしなくてはならないのです。 何冊か書籍を読んでみたのですが、この開発手法が理解できません。 Perlのモジュールとかを例にあげて、分かりやすく説明をお願いします。 また、参考サイトなどあれは、教えて下さい。

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

    趣味でプログラミングをしているのですが オブジェクト指向の概念がうまく理解できていないので 教えていただけませんでしょうか? 解説本などを読むと、オブジェクト指向のクラスを動物クラスを継承して犬クラスや猫クラスなどと解説してあるのですが。 どうも、僕がプログラム設計するとしっぽクラスや泣き声クラスなどといった違った動物の類似機能をまとめてのクラスをつくり各メソッドとしてしまいまっています。 動物クラスや乗り物クラスを組み合わせてプログラムを設計する事ができません。 本格的なプログラムを組む用途では無いので気にしなくても目的の機能が実装できれば問題無いと知人からは言われ(面倒なので教えたくないのかもしれませんが)そのまま来てしまいました。 最近、気になって来たので。 正しい使い方を身に着けたいと思いチャレンジしていますが、変な癖がついていて犬や猫クラスなどと思いながら設計していると思考が止まってしまいます。 そこで、下記のことを教えていただけませんでしょうか? (1)泣き声クラスなどの同機能を1つのクラスにしてしまう設計しか出来ない(発想できない)のは考え方のどこがわるいのでしょうか? (追記:一部分だけならペンギンクラス猫クラスなどと言う動物クラスの継承的な発想はできるのですが実際のプログラミングの際は動物のようなわかり易い物オブジェクトとして目に見える物体ではない事柄をオブジェクト化にする事が難しく感じるのではないかと思います。) (2)今までの小さい規模での開発なら、クラスのつくり方がおかしくても不具合は無かったのですが、どのような時に困る事があるのでしょうか?(解説などでも再利用性などと、さらっと解説されていますがイマイチぴんときません) (3)正しくオブジェクト指向がマスター出来ている方にとって、どのクラスにどのメソッド実装するか悩む事などはあるのでしょうか? また、設計で一番悩むのはどのあたりですか? (4)UMLのマスターは必須でしょうか?(現在は、なんとなくUMLぽい感じでメモ書きをつくり、えせオブジェクト指向でプログラムを組んでいます。) (5)その他アドバイスがあればお願いします。 ※乱文で問題もハッキリせず質問の整理等がうまくいっていないと思いますが1つの項目だけでも構いませんので、ご教授お願いします。

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

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

    • ベストアンサー
    • Java
  • 本当にオブジェクト指向プログラミングっていいのでしょうか?

    いつもお世話になっております。 VC++初心者です。 現在、VC++6.0、MFCのソース修正で四苦八苦しています。 (コーディングするよりも。ソースを追うので苦労してます。) (初心者の私が言うのも難ですが、オブジェクト指向云々言う前に  ソースのif文節が異常に長かったり、3重以上ループが出てくると  とても嫌になります、、、) 一般的(?)に、プログラミングは 手続き型プログラミングよりオブジェクト指向プログラミングが 開発効率がよい、と重宝されているようですが、 どうも納得できていません。 (その手の書籍を2,3冊読みましたが消化不良に終わっています。) 個人的には、手続き型プログラミングの方が好きです。 というのも、慣れているからかもしれませんが、 ソースが追いやすいし、見やすいと思います。 逆にオブジェクト指向プログラミングでは、 ・継承されすぎると、基本クラスまで追うのが一苦労。 ・インスタンスをつくってから、関数を呼ぶのが面倒な気がする。  (手続き型なら関数呼び出しのみで済みます。) ・インスタンスをdeleteし忘れて、メモリを圧迫する危険がある。  (ガーベージコレクションというものもあるようですが、  どこで何を消しているか不安です。) ・ソースを追いにくい(慣れの問題なのでしょうか、、、) そこでですが、 「手続き型は~~で大変だけど、オブジェクト指向ならこんなにすばらしい」 というような対比的に具体例を挙げて説明されている 書籍、サイトの紹介、または、よい助言を頂けませんでしょうか。 また、上記に伴い、 ・手続き型で組んで失敗した例(オブジェクト指向型にすれば良かった例) ・オブジェクト指向型で組んで失敗した例(手続き型にすれば良かった例) も宜しければ教えて頂きたく、お願いします。 (成功例のみよりも、失敗からの成功例を教えて頂けると嬉しいです。) 長くなりましたが、宜しければご教授下さい。

  • オブジェクト指向の勉強にちょうど良いソースコードはありませんか?

    オブジェクト指向の勉強にちょうど良いソースコードはありませんか? VB6からVB.NETへの移行中ですが、VB.NETは本格的にオブジェクト指向言語となったそうで、オブジェクト指向といえばデザインパターンらしいので勉強をしつつリファクタリングを行っています。 デザインパターンのサンプルコードはwebで散見されますが、どれも説明に必要な最小限のコードなので実際の開発にどのように適用したらよいかいまいちイメージできない部分があります。 また、具体的なところだと、オブジェクト指向ではオブジェクト間の結合度を弱くしてグローバル変数を極力使用しないとありますが、設定値を管理するオブジェクトのようにあちこちから参照されるものはやはりグローバルにするのが一般的なのでしょうか。 設計の参考になるソースコードとかサイトとか教えてください。 ちなみに、今作成しているのは測定器や電源装置などを制御してデータ収集したりする制御系のソフトです。

  • オーバーロードはオブジェクト指向プログラミングの枠組みで語られるべきか

    一部の書籍やサイトでは、オーバーロードがオブジェクト指向プログラミングの特徴であるかのような記述が見受けられるのですが、私はそれに疑問を感じます。 オーバーライドはクラス・継承に関わるためOOP特有のものであると思うのですが、オーバーロードはクラスとは全く切り離して考えられるからです。 確かにオーバーロードはクラスを作るときに有用な技術ではありますが、例えばC言語のような非オブジェクト指向言語でオーバーロードが使えたとしても、それなりに機能するはずです。 ひょっとしたら 「オーバーロードもオーバーライドもポリモーフィズムだろう」 ↓ 「ポリモーフィズムといえばオブジェクト指向」 のような話の展開でしょうか(いや、さすがに無理があるか…)。 皆様はどうお考えでしょうか。 ご意見お聞かせ下さい。

  • AS3.0のオブジェクト指向プログラミング学習法について

    AS3.0のオブジェクト指向プログラミング学習法について これまでAS2.0でフルフラッシュのサイトを作ってきたのですが、 そろそろAS3.0を勉強しようかと思っております。 AS3.0ではオブジェクト指向プログラミングが重要らしいのですが、 どうやって勉強したらいいのでしょうか?いろいろ調べてみたのですが、 良い教材/WEBが見つかりません。 サイト構築を視野に入れたAS3.0のOOPの学習に参考になりそうな 書籍/WEBなどありましたら、教えて下さい! また、AS3.0に限らず、みなさんのOOP学習法も教えて頂ければ幸いです! よろしくお願いします!

  • オブジェクト指向全般、及び、クラス設計について。

    オブジェクト指向全般、クラス設計についての質問です。 当方、C#の日曜プログラマであり、数年まえから趣味のプログラミングを楽しんでおりました。 これまではあまりOOPに関する深い部分の理解をしないままなんとなくプログラミングをしてきましたが、このほど、そこらへんの理解を深めるべく名著と呼ばれる以下の書籍を買い漁って理解を深めようと模索しておりましたが、どうも、しっくりきません。 リファクタリング プログラミングの体質改善テクニック(マーチンファウラー) オブジェクト指向でなぜつくるのか(平澤章) デザインパターンとともに学ぶ オブジェクト指向のこころ(アラン・シャロウェイ) (これ以外に名前は失念してしまいましたが、UNLの書籍も読みました) それぞれの書籍を読んで「うん。なるほど。」というある程度の理解はできているつもりですが、如何せん、自分のコードで・・・となると、ちょうど作文の最初の一文が見つから無いときのような、そんな感覚に襲われてしまします。 これまでの自分のプログラミングというのは、「動けば良い」という部分が最優先であり、かつ、それのみにしかこだわって無かったことも原因としてはありそうです。 その中でも、特に戸惑ってしまうのが、「何をクラスにするのか」という最も基本的な部分です。 今習作として、2ch用ブラウザのコードを書いていますが クラス候補としていくつかのものを、確信の無い状態で挙げてはみますが ワード及び原則としての「責務」「単一責任の原則」「高凝集度」「疎結合」・・・ (それぞれの用語や原則の意味は、ある程度理解しているつもりですが) これらの用語の海で溺れてしまっている感覚で、何をクラスとすればよいのか?という部分で すでにアップアップしているような感じとなってしまいます。 また、個々のオブジェクトの関連において、あるオブジェクトを保持するのはどのオブジェクトである べきか?また、あるオブジェクトにメッセージパッシングするのはどのオブジェクトであるべきなのか?等など・・・このあたりについても、一向に頭の中の霧が晴れてくれません。 このような、悩みを解消する考え方、方法、その他おすすめの書籍でも構いませんが、ご助言いただけませんでしょうか? よろしくおねがいします。

このQ&Aのポイント
  • 富士通FMVのESPRIMO WD2/H2にNVIDIA GeForce GTX 1650 グラフィックスをつけて、6つのモニターを接続したいと思っています。
  • しかし、ポートがDisplayPort出力×2、HDMI出力×1のため、ディジーチェーンでの接続は可能か不明です。
  • 富士通ではサポート外と言われています。
回答を見る