2013-11-17 3 views
0

Я огляделся, и я не понимаю, почему у меня такая проблема. В принципе, я передаю массив игровых объектов, но после их прохождения я не могу получить доступ к деталям правильно.Ошибка прохождения массива Java

Код:

for(int i = 0; i <= 2;i++){ 
    players[i] = new Player(names[i], chipCount); 
    System.out.println(players[i].getName()); 
    } 

Этот цикл в моей основной метод. У меня есть еще один цикл, который устанавливает трех игроков (Player - это объект, который требует имя и количество фишек, и имеет два метода: getName() и getChips()). Игроки - «Боб», «Билли» и «Барни», и в вышеприведенном цикле они печатаются хорошо, однако, когда я передаю массив игроков в мой класс «Игра», пытаясь напечатать имена игроков таким же образом как указано выше, вместо этого печатает «Барни Барни Барни».

Код для класса Game:

public class Game { 

Player[] players; 
int pot = 0; 

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

public void startGame(int rounds){ 

    int roundNumber = 1; 

    while(roundNumber != rounds){ 
     System.out.println("Starting round " + roundNumber); 
     System.out.print("Players: "); 
     for(int i = 0; i <= 2; i++){ 
       System.out.print(players[i].getName() + " "); 
       } 
     System.out.println(""); 
     roundNumber = rounds; 
    } 
} 

}

И как я звоню игры:

Game game = new Game(players); 

Любой знает, почему он не печатает из названия правильно? Я передаю массив неправильно?

Благодаря

+0

Где вы создаете массив 'players' в игре' Game' = новая игра (игроки); ' – BobTheBuilder

+0

Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –

ответ

1

Моя ставка является то, что поля (name и chips) в Player являются static. Они не должны.

Прочитано Java tutorial about instance and static members.

+0

Вот и все. Огромное спасибо! – fletch254

+0

@ user2171122 Не забудьте принять этот ответ, если он вам помог –

Смежные вопросы