Java(static)

Java

Q.
1.Archerクラスを作成する。
フィールド
 private static int totalArcher;
private int no;
コンストラクタ
public Archer(){
処理を書く
}
メソッド
public static int getTotalArcher(){
処理

2.ArcherAppクラスを作成し以下の処理を実現する。(作成したアーチャーは直後にゴミにしてよい)
[実行例]
操作を入力してください1…Archer生成,2…Archerの総数確認,3…終了>1
Archer1を生成しました。
操作を入力してください1…Archer生成,2…Archerの総数確認,3…終了>1
Archer2を生成しました。
操作を入力してください1…Archer生成,2…Archerの総数確認,3…終了>1
Archer3を生成しました。
操作を入力してください1…Archer生成,2…Archerの総数確認,3…終了>2
Archerクラスから3人のアーチャーが生成されました。
操作を入力してください1…Archer生成,2…Archerの総数確認,3…終了>3
アプリケーションを終了します。

[解答例]
●Archerクラス

public class Archer {
	private static int totalArcher;
	private int no;
	public Archer(){
	 totalArcher++;	
	 this.no=totalArcher;
	 System.out.println("Archer"+this.no+"を生成しました。");
	}
	public static int getTotalArcher(){
		return totalArcher;
	}
}

●ArcherAppクラス

import java.util.Scanner;
public class ArcherApp {
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		while(true){
			System.out.print("操作を入力してください1...Archer生成,2...Archerの総数確認,3...終了>");
			int select=scan.nextInt();
			switch(select){
			case 1:
				new Archer();
				break;
			case 2:
				System.out.println("Archerクラスから"+Archer.getTotalArcher()+"人のアーチャーが生成されました。");
				break;
			default:
				System.out.println("アプリケーションを終了します。");
				scan.close();
				return;
				
			}
		}
	}
}

Q2
1.先程のArcherクラスに以下のインスタンスメソッドを追加する。

public void shootArrow(){
		System.out.println("Archer"+this.no+"は矢を放った!");
	}

2.ArcherApp2クラスを作成し、配列に10個のアーチャーインスタンスを格納し、以下の処理を実現せよ。
[実行例]
Archer1を生成しました。
Archer2を生成しました。
Archer3を生成しました。
Archer4を生成しました。
Archer5を生成しました。
Archer6を生成しました。
Archer7を生成しました。
Archer8を生成しました。
Archer9を生成しました。
Archer10を生成しました。
アーチャー番号を入力(1~10):5 [エンター]
Archer5は矢を放った!

[解答例]
●Archerクラス

public class Archer {
	private static int totalArcher;
	private int no;
	public Archer(){
	 totalArcher++;	
	 this.no=totalArcher;
	 System.out.println("Archer"+this.no+"を生成しました。");
	}
	public void shootArrow(){
		System.out.println("Archer"+this.no+"は矢を放った!");
	}
	public static int getTotalArcher(){
		return totalArcher;
	}
}

●ArcherApp2クラス

import java.util.Scanner;
public class ArcherApp2 {
	public static void main(String[] args) {
		Archer[] archers=new Archer[10];
		for(int i=0;i<archers.length;i++){
			archers[i]=new Archer();
		}
		System.out.print("アーチャー番号を入力(1~10):");
		Scanner scan=new Scanner(System.in);
		int no=scan.nextInt();
		archers[no-1].shootArrow();
		scan.close();
	}
}

コメント

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