【Java】教授もフンガッフフ簡単な問題もOOPでイケ【宿題】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG前スレ
http://pc2.2ch.net/test/read.cgi/tech/1040552821/
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG確かに俺は立てたいって言ったさ
でもさ、ネタ ネタだったのにさぁー
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGOOPを勘違いしてるやつにはできないコード見れるな
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGこのスレの定義
どんなに簡単な問題であろうと、OOP的な解釈で問題を解く
どんなにクラスが多くなろうとOOP的な方向性で解く
そうすれば、回答者に対して突っ込みいれるときも
一部分ですむから、最終的にはレスの見通しもよくなる
教授がフンガッフフとなっってしまうようなコードが書ければお前の勝ちだ
//以上のテンプレをみなが忘れた頃に貼りなおしてください または 誘導
0010デフォルトの名無しさん
NGNGつっこまれてもいいじゃないか?
自分も初心者の気持ちでコードをうpし合おう
0011デフォルトの名無しさん
NGNGつっこみだけでコードを載せない、あるいはココがこうだからダメと
はっきり言わんやつは放置
そのような、お勉強にもならないレス帰してくるやつはクソ
001212
NGNGclass ValidateException extends Exception {
public ValidateException() {
super();
}
public ValidateException(String message) {
super(message);
}
}
class State {
private String message;
public State(String message) {
this.message = message;
}
public void print() {
System.out.println(message);
}
}
001312
NGNGimport java.io.IOException;
import java.io.InputStreamReader;
public class OOP1 {
private final int MIN = 0;
private final int MAX = 1000;
private final String HIT_PREFIX = "正解:";
private final String HIT_SUFFIX = "回目";
private final String LARGER = "より大きな数です";
private final String SMALLER = "より小さな数です";
private final String REQUESTNUMBER = "数値を入力してください";
private final String UNJUSTVALUE = "0以上1000以下の数値を入力してください";
private int count;
private int answer;
private boolean isContinue;
public void execute() throws IOException {
String inputNumber;
State state;
while (isContinue && (inputNumber = new BufferedReader(new InputStreamReader(System.in)).readLine()) != null) {
int input;
count++;
try {
input = validate(inputNumber);
state = new State(check(input));
}
catch (ValidateException e) {state = new State(e.getMessage());}state.print();}}
001412
NGNGpublic String check(int input) {
if (input > answer) {
return input + SMALLER;
}
else if (input < answer) {
return input + LARGER;
}
else {
isContinue = false;
return HIT_PREFIX + count + HIT_SUFFIX;
}
}
public int validate(String inputNumber) throws ValidateException {
int num;try {
num = Integer.parseInt(inputNumber);
if (num < MIN || MAX < num) {
throw new ValidateException(UNJUSTVALUE); }}
catch (NumberFormatException e) {
throw new ValidateException(REQUESTNUMBER); }return num;}
public OOP1() {
isContinue = true;count = 0;
answer = (int) (Math.random() * 1001);}
public static void main(String[] args) {OOP1 oop = new OOP1();
try {oop.execute();}catch (IOException e) {e.printStackTrace();}}}
0015デフォルトの名無しさん
NGNGオブジェクトそのものを理解していないだろ?
前スレで上げたが、ステージ(main)、司会者、問題提示者、回答者
の4つのクラスに分けてこそ、もんモノのOOPだよ。
こうすればネットワーク多人数同時プレイも容易に可能になるし。
文句ある? なら俺がサンプル載せてやるが。
0017デフォルトの名無しさん
NGNGお前、whileの内側にtry-catchを置くと激重になるぞ。
yrt-catchはwhileの外側で囲んどけ。
しかもcatchすべき例外にExceptionクラスも追加しておけよ。
■ このスレッドは過去ログ倉庫に格納されています