• ベストアンサー

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

オブジェクト指向がうまく理解できず苦労しています。 Javaの解説書にはよくUMLについても記載されているものをよく見かけますが、UMLはオブジェクト指向を理解するのに役立ちますか? それともオブジェクト指向を理解したうえで活用するための技術ですか?

  • Java
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.1

>>Javaの解説書にはよくUMLについても記載されているものをよく見かけますが、UMLはオブジェクト指向を理解するのに役立ちますか? UMLはシステムの設計において、 どのプログラマーが手がけても同じ結果になるよう、 またプログラマー間で認識のズレが生じないように 共通化する目的で設計標準として使われるものです。 UMLにはクラス図などの設計がありますが、 オブジェクト指向に詳しい人とともに設計をすればオブジェクト指向の勉強に役立つかもしれませんが、 自分ひとりでやってみたところでオブジェクト指向の理解に役立つことはないと思います。 なので、 >>それともオブジェクト指向を理解したうえで活用するための技術ですか? そういうことでいいと思います。 オブジェクト指向は広義に捉えればいろんな使われ方をするので ただ「オブジェクト指向を理解したい」と言われても、 もう少し限定した言い方をされないと答えにくいと思います。 参考までに、「オブジェクト指向プログラミング」を理解したいという意味であれば、 デザインパターンを勉強するのがいいです。 オブジェクト指向プログラミングのデザインパターンのバイブルと言われるGof本が 日本語版でも出ていたと思います。 Web上でも多数解説がされています。 ↓の@ITの記事なんか参考になると思います http://itpro.nikkeibp.co.jp/article/COLUMN/20051123/225074/

MiscBones
質問者

お礼

回答ありがとうございます。 なるほど、まずUMLよりデザインパターンなんですね。紹介いただいたサイトもまだ内容はむずかしいですが、参考になりました。 参考書もGofなどについてのものを購入する方向で検討しなおしてみます。

関連するQ&A

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

    「オブジェクト指向」と「UML」の勉強をしようと思っているのですが、お勧めの参考書またはWebサイトをお教えていただきたいです。 ※オブジェクト指向については、JavaやC++のような言語についてではなく、オブジェクト指向についてです。 ちなみに私はJavaは経験したことがありますが、正直"オブジェクト指向がなんたるか"はわかっていないです… 現在業務でJavaに携わっていてるので、オブジェクト指向という考え方をこの機にしっかりと学べればと思っています。 UMLはまったく無知です; クラス図やシーケンス図など中身にナニがあるか微妙に知っているだけです…; どちらか片方でも良いので何かございましたら、お教え願います。 …参考書だと電車で読めるので、ちょっとだけ喜びます(笑

  • UMLでの「オブジェクト」と「インスタンス」の違い

    Java的な概念での説明や、単に「オブジェクト指向」と銘打つHPなどの説明では、「オブジェクト」と「インスタンス」は同じものとして扱われたり、「クラスオブジェクト」「インスタンスオブジェクト」等という言葉を持ち出し、単独の「オブジェクト」という言葉は存在しないなどと取れる説明をしていることが多いように感じます。 しかし、一般的にUMLを元にしたオブジェクト指向の考え方の下では「オブジェクト」と「インスタンス」という言葉は明確に使い分けられており、また「クラス」と「オブジェクト」は対極にあるものとして扱われるため、「クラスオブジェクト」等という言葉が使われることもありません。 下記URLと書籍では、「オブジェクト」と「インスタンス」を明確に使い分けています。 http://www.atmarkit.co.jp/fjava/devs/object04/object04.html テクノロジックアート UMLモデリングL1 P2,3 しかし、この使い分けのニュアンスの違いが理解できません。 オージス総研 初めて学ぶUML 21P では、「型/インスタンス」→「クラス/オブジェクト」という明確な解を提示していますが、微妙な感じだし、何より前出の2者とは明らかに異なる意味合いで使われています。 人によって異なる意味合いで使われているということは理解しています。また、その人による微妙な違いもおおむね理解しているつもりです。しかし、上記の2者のニュアンスだけは理解できない状態です。このニュアンスがわかる方、解説よろしくお願いします。

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

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

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

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

    • ベストアンサー
    • Java
  • オブジェクト指向設計の勉強(習得?)方法について

    現在Javaでのプログラミングを始めて3ヶ月ぐらいのプログラマです。 みなさんオブジェクト指向での設計はどのように勉強されていますか? 「10日UMLで覚えるUML」などの書籍で勉強して、一応UMLの表記は少しは覚えたのですが、 肝心のオブジェクト指向での設計というものがぜんぜん身についていません。(頭悪くて・・・) みなさんの勉強方法や、お勧めの講習会など ありましたら、ぜひおしえてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • オブジェクト指向で開発をするのに、どんなツールを使われていますか?

    オブジェクト指向で開発をするのに、どんなツールを使われていますか?0私はJavaプログラマではなくEcmaのActionScript3を主に使っております。オブジェクト指向性の強いJavaの開発者なら私の疑問に詳しいのではないかと思い質問しました。 具体的な名称をあげてくださってもいいですし、以下のようにどんなソフトかをまとめてくださるだけでも構いません。ちなみに、以下が私の使用しているアプリケーションです。 XMLエディタ UMLエディタ IDE IDEで開発。UMLで再利用性を高めて、XMLはなにかと便利でよく使うのでエディタを使っています。

    • ベストアンサー
    • Java
  • オブジェクト指向の利点とは?

    汎用機でCOBOLのSEを10数年やってました。(今は自営業) COBOLはプロセス型の言語といわれているのに対して C言語はオブジェクト指向型の言語といわれています。 私はC言語やJAVAで開発したことはないのですが、 C言語、すなわちオブジェクト指向の利点ってなんでしょう? JAVA、C言語はオブジェクト指向ですよね。 私はソフトウェア開発技術者の資格など持っていますのでオブジェクト指向の表面的な意味は分かります。 ですが実際、アプリ開発時・運用時にどのような利点があるのかがイマイチ分かりません。 「どっちでもいいんじゃないか」なんて思ってしまいます。 プロセス指向(VB、COBOL等)とオブジェクト指向(C言語、JAVA)の差異って何なんでしょう。 よろしくお願いします。

  • オブジェクト指向

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

    • ベストアンサー
    • Java
  • Javaにおけるオブジェクト指向とは?

    現在Javaを勉強しております。 以前はC言語を勉強しておたのですが、 JavaとCの違いにおいてJavaの特徴としてオブジェクト指向と習いました。 しかしいまいちこのオブジェクト指向を理解できません。 プログラムを一つのまとまりとして考えるというのはどういうことなのでしょうか? 確かにJavaはC言語とは違いいくつかのプログラムからできている (はず?見当違いだったらすみません) C言語が一つの大きなプログラムでできているとすると、 Javaは細かいプログラムの集合体であると私は考えていました。 この細かいプログラムの集合体というのがオブジェクト指向なのでしょうか? 全くの見当違いだったらすみません。 よろしくお願いします。 

    • ベストアンサー
    • Java
  • オブジェクト指向に関して。

    Javaの解説本を読んでオブジェクト指向プログラミングという物があることをしりました。その本には「オブジェクトはデータとそのデータを扱うための機能を持っている。この機能はメソッドと呼ぶ。クラスは設計図のような物で変数とメソッドから構成されている。設計図を実際に形にした物がインスタンスである。」と書いてありました。私はオブジェクト=クラスのような感じがしたのですが、実際のところオブジェクト=クラスでいいのでしょうか?  また、友人に話したところ、オブジェクト指向はサブルーチンに似ているといっていました。私はプログラミングの知識が全くないのでサブルーチンという物が何なのかわからないのですが、サブルーチンとオブジェクト指向の考え方は違うような気がするのです。友人に説明して納得させるにはどうしたら良いのでしょうか? ぜひ、力を課してください。

専門家に質問してみよう