トップページ⇒tech
46コメント22KB

【Java】教授もフンガッフフ簡単な問題もOOPでイケ【宿題】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
まえから立てたかったスレがあるんだよ

前スレ
http://pc2.2ch.net/test/read.cgi/tech/1040552821/
0002デフォルトの名無しさんNGNG
(;´Д`)Kanben Site YO!!
0003デフォルトの名無しさんNGNG
だれだよ、w
確かに俺は立てたいって言ったさ
でもさ、ネタ ネタだったのにさぁー
0004デフォルトの名無しさんNGNG
ま、でもある意味 いいかも
0005デフォルトの名無しさんNGNG
せめて、前のが1000いってからでもよかったじゃない?
0006デフォルトの名無しさんNGNG
でも、前スレ(?)の>>426みたいに
OOPを勘違いしてるやつにはできないコード見れるな
0007デフォルトの名無しさんNGNG
厨房の夏 2chの夏
0008デフォルトの名無しさんNGNG
前スレだってまだ半年もつぞsage
0009デフォルトの名無しさんNGNG

このスレの定義
どんなに簡単な問題であろうと、OOP的な解釈で問題を解く
どんなにクラスが多くなろうとOOP的な方向性で解く
そうすれば、回答者に対して突っ込みいれるときも
一部分ですむから、最終的にはレスの見通しもよくなる
教授がフンガッフフとなっってしまうようなコードが書ければお前の勝ちだ


//以上のテンプレをみなが忘れた頃に貼りなおしてください または 誘導
0010デフォルトの名無しさんNGNG
//追加

つっこまれてもいいじゃないか?
自分も初心者の気持ちでコードをうpし合おう
0011デフォルトの名無しさんNGNG
//さらに追加

つっこみだけでコードを載せない、あるいはココがこうだからダメと
はっきり言わんやつは放置
そのような、お勉強にもならないレス帰してくるやつはクソ
001212NGNG
前スレ>>416-417 OOP版

class 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);
}
}
001312NGNG
import java.io.BufferedReader;
import 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();}}
001412NGNG

public 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
残念だけど、それはOOPとはいけないよ。
オブジェクトそのものを理解していないだろ?
前スレで上げたが、ステージ(main)、司会者、問題提示者、回答者
の4つのクラスに分けてこそ、もんモノのOOPだよ。
こうすればネットワーク多人数同時プレイも容易に可能になるし。

文句ある? なら俺がサンプル載せてやるが。

001612NGNG
>>15
どぞ お願いします
0017デフォルトの名無しさんNGNG
>>13
お前、whileの内側にtry-catchを置くと激重になるぞ。
yrt-catchはwhileの外側で囲んどけ。

しかもcatchすべき例外にExceptionクラスも追加しておけよ。
■ このスレッドは過去ログ倉庫に格納されています