2

当谈到 Java 时,我是相当初学者,因为我更关注大学的 Js,而不是它的 OOP 重的兄弟,因此,我不能完全正确地传递我的参数。

我希望在“generateMonsterCode”中生成一个随机数并将其传递给“chooseMonster”,但我不太了解如何完成此操作。

/**
 * Randomnly choose a type of monster of varying hp/mp/loot drops
 * @return rndGen
 */
public int generateMonsterCode (){
    Random rndGens = new Random();
    int rndGen = 0;

    for (int i = 1; i < 2; i++) {
       rndGen = rndGens.nextInt(4) + 1;
    }

    return rndGen;
}

/**
 * Define which monster is chosen
 */
public void chooseMonster(){

    switch(rndGen){
        case 1: System.out.println("Monster:" + rndGen);
        case 2: System.out.println("Monster:" + rndGen);
        case 3: System.out.println("Monster:" + rndGen);
        case 4: System.out.println("Monster:" + rndGen);
    }     
}

任何帮助将不胜感激!

关于反馈的更新

    /**
 * Randomnly choose a type of monster of varying hp/mp/loot drops
 * @return rndGen
 */

public void generateMonsterCode (){
Random rndGens = new Random();
    int rndGen = 0;

    rndGen = rndGens.nextInt(4) + 1;

    chooseMonster(rndGen);

}

/**
 * Define which monster is chosen
 */

private void chooseMonster(int rndGen){

    switch(rndGen){
    case 1: System.out.println("Monster:" + rndGen);
            break;
    case 2: System.out.println("Monster:" + rndGen);
            break;
    case 3: System.out.println("Monster:" + rndGen);
            break;
    case 4: System.out.println("Monster:" + rndGen);
            break;
    }

}

这可能是更好的代码实践吗?

4

1 回答 1

1

通过将参数放在方法声明旁边的括号中来指定参数。

public void chooseMonster()是一种不带参数的方法。

public void chooseMonster(int i){将 int 作为参数并i在方法的范围内对其进行命名。

当您为方法指定参数时,您必须传递调用它时指定类型的变量。因此,在generateMonsterCode()生成随机数之后,您只需调用chooseMonster(rndgen).

在该方法中,您可以使用以下方法引用int您传递给它的内容:

i.doSomething();

这有意义吗?如果我能更仔细地解释一下,请告诉我:我在这里讨论了面向对象编程的一些基本方面,如果你想在未来担任角色,掌握这些概念很重要。

仅供参考:方法声明的另一端是返回类型 - 在您的情况下,它是 void,这意味着没有返回任何内容。另一种构造它的方法是让你的generateMonsterCode()方法返回一个int:

public int generateMonsterCode(){ 
    .... generate random number
    return rdngen();

并在方法的开头调用它chooseMonster()

public void chooseMonster() {
      int i = generateMonsterCode();
      ... do work
}

请注意,这不一定比其他方式更好或更差,我只是出于解释的目的提及它。

另外仅供参考:@supericy 关于您在随机生成中使用的 for 循环是正确的。而且您可能还应该检查public访问修饰符的作用以及您是否真的需要它(您可能不需要) - 但这些问题超出了您的问题范围。

于 2013-04-22T23:54:34.680 回答