[英]Passing Parameters (Novice) (Java)
在谈到Java时,我还是个初学者,因为我将更多的精力放在大学的Js上,而不是Java的面向对象的兄弟,因此,我无法完全传递我的参数。
我希望在“ 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()
;
这有意义吗? 让我知道是否可以更仔细地解释这些问题:在这里,我不谈面向对象编程的一些基本方面,并且,如果您想在将来发挥作用,那么掌握这些概念很重要。
仅供参考:方法声明的另一端是返回类型-在您的情况下,它是空的,意味着什么都不会返回。 另一种结构化方法是让您的generateMonsterCode()
方法返回一个int值:
public int generateMonsterCode(){
.... generate random number
return rdngen();
并在chooseMonster()
方法的开头调用它。
public void chooseMonster() {
int i = generateMonsterCode();
... do work
}
请注意,这不一定比以其他方式好或坏,我仅出于说明目的而提及它。
仅供参考:@supericy对您在随机代中使用的for循环是正确的。 而且您可能还应该检查public
访问修饰符的作用以及您是否真正需要(可能不需要),但是这些问题不在您的讨论范围之内。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.