如何使用不同类别的吸气剂?

时间:2016-11-15 00:18:28

标签: java

我在一个名为Pokemon的类中有这些setter和getter但我想制作一系列攻击,速度和防御。如何将getter中使用的东西用于此方法?我试图在另一个名为Pokedex的类中创建这个数组,但是我得到一个错误,说这些方法无法解析或不是字段。注意:这些类所在的java文件恰好位于同一个包中。

public int [] checkStats(String species){

    int [] stats = {Pokemon.getDefense, Pokemon.getSpeed, Pokemon.getAttack};
    return stats;

}

public int getAttack(){
    return attack;
}


public void setAttack(int atk){

    attack = atk;
}


public int getDefense(){
    return defense;
}


public void setDefense(int def){

        defense = def;
    }


public int getSpeed(){
    return speed;
}


public void setSpeed(int spd){

    speed = spd;
}

3 个答案:

答案 0 :(得分:0)

您在这里缺少方括号()

{Pokemon.getDefense, Pokemon.getSpeed, Pokemon.getAttack};

使用:

{getDefense(), getSpeed(), getAttack()};

OR:

{this.getDefense(), this.getSpeed(), this.getAttack()};

P.S。 Pokemon.getDefense()这适用于静态方法。

答案 1 :(得分:0)

我看到的主要问题是Pokemon.getDefense不是你班上的静态属性或字段。你有一个getDefense()方法,但这不是这里引用的方法。

您也不需要该参数,因此可以安全删除。

您可以将该方法更改为更简单的方法,这将编译并有意义:

public int[] checkStats(){
    return new int[]{ getDefense(), getSpeed(), getAttack() };
}

答案 2 :(得分:0)

当你在Java中调用方法时,你必须用括号调用它们(这个关键字指的是'this'类,在这种情况下是口袋妖怪)

this.getDefense();

我也建议你改变使用

的二传手
this.attack=attack

this.attack是指在该类中初始化的攻击,对它自己的攻击是指攻击被传递到该方法中。

这将使您免于将攻击更改为atk等。它只会让您的生活更轻松,您的代码也更容易阅读。如果你想看一下这个概念,请看here。希望这会帮助你!