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  

questionAnswers(5)

yourAnswerToTheQuestion