簡體   English   中英

傳遞參數(新手)(Java)

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM