簡體   English   中英

您如何將數組從main方法傳遞給Java中的另一個方法?

[英]How do you pass in an array from the main method to another method in java?

我的主要方法中有一個Person數組,並且必須將該數組傳遞給Game類中的PlayGame()方法。 你是怎樣做的?

public class RollOff {
      public static void main(String[] args) throws IOException{

        int numPeople;
        int a;


        System.out.println("How many people will play the game?");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        numPeople = Integer.parseInt(s);

        if ((numPeople >= 2) && (numPeople <= 10)) {
            Person[] p = new Person[numPeople];
            for (a = 0; a < numPeople; a++) {
                p[0] = new Person(a);
            }

        }

    }
}

public class Game extends RollOff{
    int numPeople;
    int a;


    void PlayGame() {

  }

}

您需要使用參數來做到這一點:

void playGame(Person[] p){
    ...
}

現在只需致電

public static void main(String[] args){
    ...
    game.playGame(p);
}

由於playGame不是靜態方法,因此您要么需要使其靜態並調用Game.playGame(p)要么需要創建Game的實例: Game game = new Game()然后調用game ,如上例所示。

public void play(Person[] person) {

// code
}

// The call
play(person);

您只需將Person數組參數添加到PlayGame

 void playGame(Person[] personArray){//logic of the method}

然后,您要做的就是通過創建類Game的新實例從main方法調用playGame方法。

Game game = new Game();
game.PlayGame(p);

這里的“ p”是你的人數組。

主類應創建Game的實例,並將玩家數組傳遞給構造函數:

Game game = new Game(p);
game.playGame();

因此,Game類應具有以下字段和構造函數:

private Person[] players;

public Game(Person[] players) {
    this.players = players;
}

請注意,方法應以小寫字母開頭,以遵循Java命名約定,並且循環中有一個bug:它始終設置數組的第一個元素,而不是初始化每個元素。

最后,給變量起有意義的名字: playersp更具可讀性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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