gpt4 book ai didi

java - 传递参数(新手)(Java)

转载 作者:行者123 更新时间:2023-11-30 11:33:19 27 4
gpt4 key购买 nike

在 Java 方面,我是相当初学者,因为我更关注大学的 Js 而不是它的 OOP-heavy 兄弟,因此,我不能完全正确地传递我的参数。

我想在“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;
}

}

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

最佳答案

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

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 访问修饰符的作用以及您是否真的需要它(您可能不需要)——但这些问题超出了您的问题范围。

关于java - 传递参数(新手)(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16158627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com