Como inicializar uma matriz de objetos em Java
Quero inicializar uma matriz de objetos Player para um jogo de BlackJack. Eu li muito sobre várias maneiras de inicializar objetos primitivos, como uma matriz de ints ou uma série de seqüências de caracteres, mas não consigo levar o conceito ao que estou tentando fazer aqui (veja abaixo). Gostaria de retornar uma matriz de objetos Player inicializados. O número de objetos de jogador a serem criados é um número inteiro para o qual solicito ao usuário. Eu estava pensando que o construtor poderia aceitar um valor inteiro e nomear o player de acordo, enquanto inicializava algumas variáveis de membro do objeto Player. Acho que estou perto, mas ainda estou bastante confus
static class Player
{
private String Name;
private int handValue;
private boolean BlackJack;
private TheCard[] Hand;
public Player(int i)
{
if (i == 0)
{
this.Name = "Dealer";
}
else
{
this.Name = "Player_" + String.valueOf(i);
}
this.handValue = 0;
this.BlackJack = false;
this.Hand = new TheCard[2];
}
}
private static Player[] InitializePlayers(int PlayerCount)
{ //The line below never completes after applying the suggested change
Player[PlayerCount] thePlayers;
for(int i = 0; i < PlayerCount + 1; i++)
{
thePlayers[i] = new Player(i);
}
return thePlayers;
}
EDIT - ATUALIZAÇÃO: Aqui está o que eu ganho depois de alterar isso, pois entendi sua sugestão:
Thread [main] (Suspended)
ClassNotFoundException(Throwable).<init>(String, Throwable) line: 217
ClassNotFoundException(Exception).<init>(String, Throwable) line: not available
ClassNotFoundException.<init>(String) line: not available
URLClassLoader$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
Launcher$ExtClassLoader(URLClassLoader).findClass(String) line: not available
Launcher$ExtClassLoader.findClass(String) line: not available
Launcher$ExtClassLoader(ClassLoader).loadClass(String, boolean) line: not available
Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: not available
Launcher$AppClassLoader.loadClass(String, boolean) line: not available
Launcher$AppClassLoader(ClassLoader).loadClass(String) line: not available
BlackJackCardGame.InitializePlayers(int) line: 30
BlackJackCardGame.main(String[]) line: 249