java - 如何在没有静态的情况下访问不同类中的字段? (JAVA)

标签 java arrays static field

我正在创建一个战斗模拟游戏。我有一个攻击职业和一个战士职业。


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) ;

    }

}

由于战士有不同的攻击,我不能使用静态,因为它会覆盖之前的攻击。 Monster 类片段:

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

}

我如何才能访问攻击字段? 谢谢。

最佳答案

正如您可以访问 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;
    }
}

关于java - 如何在没有静态的情况下访问不同类中的字段? (JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58525451/

相关文章:

java - 通过包装原始类型的类来传递原始类型作为引用传递

java - int 数组中的 for 循环仅计算 if 语句中的第一个数组编号

arrays - 即使在 slice 和变异之后,为什么/如何保留其初始化值?

c# - .NET 垃圾收集器有很多静态变量

c++ - 在 C++ 中缓存昂贵的数据——函数范围的静态变量与可变成员变量

java - 如何正确使用concurrentskiplistmap?

java - 我有选择查询问题

java - 如何将带有 Imageview 和 TextView 的 RelativeLayout 转换为 PNG 图像?

c++ - 在函数中访问类的数组

c# - 为什么类 "Program"声明为静态的?