idを含む4つのパラメーターを持つ4つの文字オブジェクトを作成しました。コンストラクターパラメーターの1つを使用してオブジェクトの別のパラメーターにアクセスするにはどうすればよいですか?たとえば、idをパラメーターとして受け取るメソッドを作成し、そのidを使用して、ユーザーが話しているキャラクターを指定して、その特定のキャラクターのパラメーター(名前など)を取得できるようにします。
キャラクターオブジェクト
Character warrior = new Character("Warrior", 60, 15+rn.nextInt(5), 1); //name, health, damage, id
Character skeleton = new Character("Skeleton", 90, 20+rn.nextInt(10), 2);
私が作成しようとしている方法
public void spawnEnemy(int id){
System.out.printf("%s appeared!", //get character's name with id);
}
Character
クラスを変更できる場合は、静的、つまり「グローバル」Map
を指定して、すべてのインスタンスを追跡できます。そうすれば、クライアントコードは追跡について心配する必要がありません。
public class Character {
// "Global" Map that tracks all Character instances by ID
private static HashMap<Integer, Character> idToCharacter = new HashMap<>();
// Fields, etc...
public Character(String name, int health, int damage, int id) {
// Set field values, etc...
// Track this new Character
idToCharacter.put(id);
}
// "Global" method for getting a Character by ID
public static Character getCharacter(int id) {
return idToCharacter.get(id);
}
}
次に、クライアントコードは単に次のように呼び出しますgetCharacter
。
public void spawnEnemy(int id){
System.out.printf("%s appeared!", Character.getCharacter(id).getName());
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加