Как получить доступ к полю в другом классе без статического? (ЯВА) - PullRequest
0 голосов
/ 23 октября 2019

Я создаю боевого сима. У меня есть класс атаки и класс воина.


public class Attack {

    private String name;
    private int points;

    public Attack(String name, int points) {
        this.name= name;
        this.points =points;

    }

    //getters
    public String getName() {
        return name;
    }

    public int getPoints() {
        return points;
    }


    public String toString() {
        return ("Name of the attack = " + name + " damage = " + points) ;

    }

}

Так как у воинов есть разные атаки, я не могу использовать статические, так как они отменят предыдущую атаку. Класс Snippet of Monster:

        public Attack[] getAttacks() {
        return attacks;
    }
public void attack(String attackname, Warrior otherWarrior){
// How would I access the attack from the class?

}

Как я могу получить доступ к полям Attack? Спасибо.

1 Ответ

0 голосов
/ 23 октября 2019

Так же, как вы можете получить доступ к методам экземпляра класса this Monster, вы можете получить доступ к методам экземпляра вашего Warrior класса:

public class Monster {
    Attack[] attacks;
    // ...

    public Attack[] getAttacks(){
        return attacks;
    }

    public void attack(String attackname, Warrior otherWarrior){
        Attack[] monsterAttacks = this.getAttacks();

        // Assuming Warrior has the method `getAttacks()`
        Attack[] warriorAttacks = otherWarrior.getAttacks();

        // ...
    }
}

public class Warrior {
    Attack[] attacks;
    // ...

    public Attack[] getAttacks() {
        return attacks;
    }
}
...