ここから本文です

最近、オブジェクト指向の言語(Java)を学び始めました。 そこで、まずは電卓のよ...

tam********さん

2010/1/2900:04:45

最近、オブジェクト指向の言語(Java)を学び始めました。
そこで、まずは電卓のようなものを作ってみようと考えました。
現在考えているのは、
・メインのクラス
・加算・減算等をする計算クラス
の2つのクラスを用いることです。

そこで疑問に思ったのですが、
①入力した式をメインクラス内で解読し、メインクラスから計算クラスへ加算・減算命令を出す。

②入力した式を計算クラスへそのまま渡し、計算クラス内で解読し、加算・減算等をする。

上の2つの方法で、どちらがオブジェクト指向として相応しいのでしょうか?

わたしは今までC言語等を学んできたため、まだオブジェクト指向というものを理解できていません。

もし、上の2つの方法意外で、オブジェクト指向として相応しい方法・クラスの作り方等がありましたら、ぜひ教えてください。

閲覧数:
764
回答数:
2

違反報告

ベストアンサーに選ばれた回答

mar********さん

編集あり2010/1/2909:13:07

例えば。
>加算・減算等をする計算クラス
が、電卓の+や-しかあらわさないのであれば、
二つの数字を受け取り、それを足して返すメソッドと、
二つの数字を受け取り、それを引いて返すメソッドしかないはずですね。

>加算・減算等をする計算クラス
が、式を取得して計算を行うクラスなのであれば、
コンストラクタで式を受け取り、calc()みたいなメソッドを呼ぶと、解析し、計算するって言うのでもいいわけです。
このとき、足す()メソッドや引く()メソッドはprivateが良いですね。


オブジェクト指向に慣れないうちは、
○○する子
○○する子
と、作業分担をしっかり決めましょう。
#クラスを擬人化するといってもいいかもしれません。

今回の場合は、加算・減算等をする計算クラス
に、「計算を」させたいのか「式を解かせたい」のかによって、
上でも、下でも、オブジェクト指向として正しい振る舞いということになりますよ。

質問した人からのコメント

2010/1/30 16:10:55

例をまじえた非常に分かりやすい説明をしていただき、ありがとうございます!

参考にさしていただいて、プログラムを作りたいと思います(^-^)
また分からない事があった時によかったらまた教えていただけるとありがたいです。

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

qui********さん

2010/1/2917:54:29

> 入力した式をメインクラス内で解読
という時点でオブジェクト指向っぽくない。
メインというかアプリケーションクラスなんて自分が仕事はしないで、普通はほとんど他のクラスのまとめ役でしょう。

言語側から入ってオブジェクト指向を理解しようとするのってどうなんでしょう...私は、一旦言語を離れてオブジェクト指向解析・設計を学んでから実装に落すためにやっと言語が出てくる、という方がいいようにおもうのですが。
#少なくとも私はそういう道を辿ったんだけど。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる