[英]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.