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クラス

01public class Archer {
02  private static int totalArcher;
03  private int no;
04  public Archer(){
05   totalArcher++;
06   this.no=totalArcher;
07   System.out.println("Archer"+this.no+"を生成しました。");
08  }
09  public static int getTotalArcher(){
10    return totalArcher;
11  }
12}

●ArcherAppクラス

01import java.util.Scanner;
02public class ArcherApp {
03  public static void main(String[] args) {
04    Scanner scan=new Scanner(System.in);
05    while(true){
06      System.out.print("操作を入力してください1...Archer生成,2...Archerの総数確認,3...終了>");
07      int select=scan.nextInt();
08      switch(select){
09      case 1:
10        new Archer();
11        break;
12      case 2:
13        System.out.println("Archerクラスから"+Archer.getTotalArcher()+"人のアーチャーが生成されました。");
14        break;
15      default:
16        System.out.println("アプリケーションを終了します。");
17        scan.close();
18        return;
19         
20      }
21    }
22  }
23}

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

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

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

[解答例]
●Archerクラス

01public class Archer {
02  private static int totalArcher;
03  private int no;
04  public Archer(){
05   totalArcher++;
06   this.no=totalArcher;
07   System.out.println("Archer"+this.no+"を生成しました。");
08  }
09  public void shootArrow(){
10    System.out.println("Archer"+this.no+"は矢を放った!");
11  }
12  public static int getTotalArcher(){
13    return totalArcher;
14  }
15}

●ArcherApp2クラス

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

コメント

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