[英]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:它始終設置數組的第一個元素,而不是初始化每個元素。
最后,給變量起有意義的名字: players
比p
更具可讀性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.