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();
}
}
コメント