二十日目は十九日目のリベンジ
あんまし時間取れなかったんで、とりあえず指摘されたことを修正してみた。
指摘内容
- 範囲外の値が設定できてしまう
- それを効率的に防ぐ手がある
入り口が複数あっても出口は一つ、ならその出口を見張れば良い。そんな考えでこんなふうに修正してみた。
//座標値を格納するクラス class MyPoint { //フィールド private int X; private int Y; //コンストラクタ public MyPoint() { //初期座標を(0,0)とする X = 0; Y = 0; } public MyPoint(int x,int y) { //初期座標を指定する X = x; Y = y; } //メソッド public void setX(int px) { //X座標の設定 X = px; } public void setY(int py) { //y座標の設定 Y = py; } public int getX() { //x座標を得る if(0 <= X && X >= 100){ return X; } else{ System.out.println("値が不正の為、初期化します"); X = 0; return X; } } public int getY() { //y座標を得る if(0 <= Y && Y >= 100){ return Y; } else{ System.out.println("値が不正の為、初期化します"); Y = 0; return Y; } } }
値を得るところでだけ判定してるあたり、何か役所仕事だなぁとか思った(笑)
役所仕事はやはりダメらしい
不正解、と言われたのでダメ出しをリストアップしておく。
- おかしい値を保持する時点でダメ
- 既にあるチェック項目を利用する
また悩みなおしだなぁ…