TxKxZxWx's blog

AWS SAA、Javaの学習

Java学習 20日目 「RPGの敵クラスを作ろう 」

Java入門編7: クラスを理解しよう

 

04:RPGの敵クラスを作ろう

 

 

import java.util.*;

 

public class Main {
  public static void main(String[] args) {
    ArrayList<Enemy> enemies = new ArrayList<Enemy>();
    enemies.add(new Enemy("スライム"));
    enemies.add(new Enemy("モンスター"));
    enemies.add(new Enemy("ドラゴン"));

    for (Enemy member : enemies) { //ループ処理
      member.attack();
    }
  }
}

 

class Enemy {
  private String myName;

 

  public Enemy(String name) { //コンストラク
    myName = name;
  }

 

  public void attack() {
    System.out.println(myName + "は、勇者を攻撃した。");
  }
}

 

 

⬇︎

スライムは、勇者を攻撃した。

モンスターは、勇者を攻撃した。

ドラゴンは、勇者を攻撃した。

 

 

 

複数の敵がいる場合は共通のEnemyクラスでまとめて、同じメソッドを呼び出すことができる。

英語のインスタンスには実例という意味がある。

Enemyクラスで敵という分類を定義して、スライムやモンスターという実例をオブジェクトとして生成している。

そして、ここでは生成したオブジェクトをenemiesというArrayListに代入している。

ArrayListもクラスを設計図としてオブジェクトを作成し、利用する。

このように要素であるオブジェクトを入れ、グループを表すクラスをコレクションと呼ぶ。

そして同じEnemyクラスから作った複数のオブジェクトをArrayListのenemiesに追加しておくと、ループ処理で共通のattackメソッドを呼び出すことができる。

要素を取り出すmember変数はEnemyクラスを元にしたEnemy型になっている。