十九日目は昨日の残り

練習問題が解けなかったので、続きを…と思ったものの。何だこりゃ?

次のように整数値の座標をあらわすMyPointクラスを作成してください。
ただし、座標軸の範囲は0〜100となるようにしてください。
フィールド
private int X;(X座標)
private int Y;(Y座標)
メソッド
public void setX(int px);(X座標を設定する)
public void setY(int py);(Y座標を設定する)
public int getX();(X座標を得る)
public int getY();(Y座標を得る)
コンストラク
public MyPoint();(初期座標を(0,0)とする)
public MyPoint(int x,int y);(初期座標を指定する)

何この問題。コンストラクタ2つある意味わかんねー!
座標を設定と座標を得るって、それ一つにしちゃいかんの? ぬがー!


…と、混乱すること約一時間。別にプログラム組めと言われてるわけじゃないことに気づく。あっさり解けたorz
これで良いはず、だけど自信無いので載せてみよう。

//座標値を格納するクラス
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座標の設定
		if(0 <= px && px >= 100){
			X = px;
		}
		else{
			System.out.println("値が不正です");
		}
	}
	public void setY(int py)
	{
		//y座標の設定
		if(0 <= py && py >= 100){
			Y = py;
		}
		else{
			System.out.println("値が不正です");
		}
	}
	public int getX()
	{
		//x座標を得る
		return X;
	}
	public int getY()
	{
		//y座標を得る
		return Y;
	}
}

めっさ適当になった気がする。クラスだけでなくちゃんと動作するように書いてみようかな?