我的main方法中有一个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() {
}
}
答案 0 :(得分:3)
您需要使用参数来执行此操作:
void playGame(Person[] p){
...
}
现在只需致电
public static void main(String[] args){
...
game.playGame(p);
}
因为playGame不是静态方法,所以您需要将其设置为静态并调用Game.playGame(p)
,否则您需要创建一个Game实例:Game game = new Game()
然后调用{ {1}},如上例所示。
答案 1 :(得分:1)
public void play(Person[] person) {
// code
}
// The call
play(person);
答案 2 :(得分:1)
您只需将一个Person数组参数添加到PlayGame
即可 void playGame(Person[] personArray){//logic of the method}
然后你所要做的就是通过创建类Game的新实例来调用main方法中的playGame方法
Game game = new Game();
game.PlayGame(p);
这里“p”是你的人阵。
答案 3 :(得分:0)
主类应该创建一个Game实例,并将玩家数组传递给构造函数:
Game game = new Game(p);
game.playGame();
Game类应该具有以下字段和构造函数:
private Person[] players;
public Game(Person[] players) {
this.players = players;
}
请注意,方法应该以小写字母开头,以遵循Java命名约定,并且您的循环有一个错误:它总是设置数组的第一个元素,而不是初始化每个元素。
最后,为变量赋予有意义的名称:players
比p
更具可读性。