二十日目は十九日目のリベンジ

あんまし時間取れなかったんで、とりあえず指摘されたことを修正してみた。

指摘内容

  1. 範囲外の値が設定できてしまう
  2. それを効率的に防ぐ手がある

入り口が複数あっても出口は一つ、ならその出口を見張れば良い。そんな考えでこんなふうに修正してみた。

//座標値を格納するクラス
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;
		}
	}
}

値を得るところでだけ判定してるあたり、何か役所仕事だなぁとか思った(笑)

役所仕事はやはりダメらしい

不正解、と言われたのでダメ出しをリストアップしておく。

  • おかしい値を保持する時点でダメ
  • 既にあるチェック項目を利用する

また悩みなおしだなぁ…