質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

Q&A

5回答

2771閲覧

オブジェクト指向の例の設計

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

0グッド

2クリップ

投稿2015/07/10 16:20

Javaで現在オブジェクト指向を勉強しています。
ある程度の仕組みは理解したつもりです。そこで、自分で考えて、いろいろ作ってみたいのですが、良い例が浮かんで来ません。

学習した内容では、HeroとEnemyというクラスがありそれぞれが互いに関係しあうオブジェクト指向を学びました。
例えば、それぞれ実態を作成し、Enemy1がHero1に攻撃したら、EnemyクラスのメソッドでHero1を引数ととり、Hero1のHPを減らすなどという関連をもたせて作成しました。

このような感じで、2通りの内容の例の作成お願いします。

  1. HeroとEnemyみたいなオブジェクト指向を理解しやすい例
  2. 実際によく使用するオブジェクト指向、業務などでよくある例など

この2つについて例を教えていただきたいです。宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

UMLなどを勉強されてみてはいかがでしょうか。
クラス図などで視覚的にオブジェクト指向を理解できると思います。

投稿2015/07/11 07:27

HiraiKei

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

オブジェクト指向設計とオブジェクト指向プログラミングを分けて考えたほうが良いと思います。

私の実感だと、この2つは似て非なるものです。もちろん、UMLなどオブジェクト指向設計したものをクラス定義の元にしてオブジェクト指向プログラミングをするということはあります。しかし、これらが実際に1対1の対応をさせることは難しく、また、対応させることのメリットも少ないと思います。

ということで、オブジェクト指向設計に関して学ばれるのであれば、HiraiKeiさんがいうようにUML関連書籍が良いと思います。

オブジェクト指向プログラミングであれば、結城浩さんの”増補改訂版Java言語で学ぶデザインパターン入門”をおすすめします。古い本ですが、GoFデザインパターンという基本を丁寧に説明している本で、丁寧でわかりやすいという意味でこれ以上の本は見たことがないほどです。
実際に動く様々な非常に短いコードがありますので、ご自身で入力されると必ず身につくと思います。
http://www.hyuki.com/dp/

あとは、sumsum25さんがプログラミングするにあたりで書きづらいところをオブジェクト指向にして書きなおして見ることです。そうする必要を感じないのであれば、特に身につける必要もない技術だと思います。

投稿2015/07/11 15:25

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

書籍を立ち読みしてみて下さい。
なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング
http://www.amazon.co.jp/dp/477412222X

実務ではこれは「オブジェクト指向」で書いてやろうと思う場面はありません。
実装した結果、なんとなくオブジェクト指向になっているもんです。

投稿2015/07/11 07:05

z_a_ki3

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

google で "java オブジェクト指向 サンプル" などとして検索すると、たくさんの例を見つけることができます。

投稿2015/07/10 23:01

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

オブジェクト指向、というのは、
<世の中はすべて、オブジェクトとオブジェクト同士の関連でできている>という「考え方」です。

オブジェクト指向プログラミング、というのは、
オブジェクト指向の考え方で、プログラミングをする
=システムをオブジェクト指向でとらえ、表現する

ということです。

  1. HeroとEnemyみたいなオブジェクト指向を理解しやすい例

ですが、とーーーーってもたくさんの例が必要になります。
ので、例を探すよりも、
まず、「オブジェクト指向脳」になるために、
「この世界のも全てをオブジェクトとしてとらえる練習」をするのが良いと思います。

例えば、図書館(オブジェクト)。
図書館には、たくさんの本(オブジェクト)がある(has a)
本には、いろんな種類がある。
マンガも本だし、(is-a)
写真集も本。(is-a)
図書館には司書さん(オブジェクト)がいて、
司書さん(オブジェクト)に図書カード(オブジェクト)を渡す(メソッド)と、
司書さんは指定された本を貸し出し(メソッド)てくれる。

みたいに。

  1. 実際によく使用するオブジェクト指向、業務などでよくある例など

業務で良くある例、というよりも、
その業務を、オブジェクト指向的視点で見れるようになれば、
良くある例よりも、その業務への最適解が見つかるはずです。

但し、オブジェクト指向開発にも、いろんな考え方(オブジェクトのとらえ方)ができますし、
それをどうプログラムに落とし込むかについても、いろんな方法があります。

それへの解決として、
デザインパターン
というものがあるので、是非、オブジェクト指向をマスターしたら、
オブジェクト指向プログラミングをマスターするために、
デザインパターン(Gofの本がお勧め)や、
インタフェース指向開発(オライリーの本がお勧め)のお勉強をなさるのが良いと思います。

投稿2015/07/14 01:56

Coro

総合スコア60

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問