オブジェクト指向(基本3)

Java

お題

クラスの作り方とインスタンスの作り方を学ぼう

手順


◯新規ファイルPositionApp.javaを作成する。内容は以下

public class PositionApp {
	public static void main(String[] args) {
		

	}
}

◯PositionAppクラスの下にPositionクラスを作成する。記述は以下

public class PositionApp {

	public static void main(String[] args) {
		

	}

}
class Position{
	
}

以下はPositionクラスに記述していくこと

◯フィールド変数
int x;
int y;

◯コンストラクタ
1. 引数2つのコンストラクタ -> 引数に入ってきた2つの値でthis.xとthis.yを初期化し、this.displayPositionメソッドを実行する
 2.引数なしのコンストラクタ->this.xとthis.yを0で初期化しthis.displayPositionを実行する。この際、1のコンストラクタを呼び出すようにすること

◯メソッド
右に移動するメソッド void moveRight(int len)を作成する。
処理内容は、引数で入ってきた値の分、this.xを増やす
「右にxxx移動しました」と出力する。

左に移動するメソッド void moveLeft(int len)を作成する。
処理内容は、引数で入ってきた値の分、this.xを減らす
「左にxxx移動しました」と出力する。

上に移動するメソッド void moveUp(int len)を作成する。
処理内容は、引数で入ってきた値の分、this.yを増やす
「上にxxx移動しました」と出力する。

下に移動するメソッド void moveDown(int len)を作成する。
処理内容は、引数で入ってきた値の分、this.yを減らす
「下にxxx移動しました」と出力する。

現在地点を表示するメソッド void displayPosition()を作成する。
表示内容は以下
「現在位置は[x:?,y:?]です」

インスタンスの作成

◯上部にあるmainメソッドの中でPositionクラスのインスタンスを引数なしで作成し、Position型の変数p1に代入する

◯p1がmoveRight(5)を行う

◯p1がmoveUp(10)を行う

◯p1がdisplayPosition()を実行することで現在位置を表示する。

◯Positionクラスのインスタンスを引数(4,6)で作成し、Position型の変数p2に代入する

◯p2がmoveLeft(8)を行う

◯p2がmoveDown(20)を行う

◯p2がdisplayPosition()を実行することで現在位置を表示する。

実行例は以下

現在位置は[x:0,y:0]です
右に5移動しました
上に10移動しました
現在位置は[x:5,y:10]です
現在位置は[x:4,y:6]です
左に8移動しました
下に20移動しました
現在位置は[x:-4,y:-14]です

解答例


public class PositionApp{
	public static void main(String[] args){
		Position p1 = new Position();
		p1.moveRight(5);
		p1.moveUp(10);
		p1.displayPosition();

		Position p2 = new Position(4,6);
		p2.moveLeft(8);
		p2.moveDown(20);
		p2.displayPosition();
	}
}
class Position{
	int x;
	int y;

	Position(){
		this(0,0);
	}
	Position(int x,int y){
		this.x = x;
		this.y = y;
		this.displayPosition();
	}

	void moveRight(int len){
		System.out.printf("右に%d移動しました%n",len);
		this.x += len;
	}
	void moveLeft(int len){
		System.out.printf("左に%d移動しました%n",len);
		this.x -= len;
	}
	void moveUp(int len){
		System.out.printf("上に%d移動しました%n",len);
		this.y += len;
	}
	void moveDown(int len){
		System.out.printf("下に%d移動しました%n",len);
		this.y -= len;
	}
	void displayPosition(){
		System.out.printf("現在位置は[x:%d,y:%d]です%n",this.x,this.y);
	}
}
Java
スポンサーリンク
シェアする
mjpurinをフォローする

コメント

タイトルとURLをコピーしました