Ma in realtà è piuttosto semplice:
dentro al corpo di una classe ci sono dichiarazioni di campi e metodi, punto e basta, non ci possono essere istruzioni di altro tipo (che vanno invece all'interno vari metodi, e in particolare nel costruttore se devono essere eseguite al momento della creazione di un oggetto); tuttavia, l'inizializzazione dei campi può essere parte della loro dichiarazione, e per questo motivo è concessa.

(nota comunque che non è una regola "assoluta" - in C++, che pure ha sintassi simile a Java per dichiarazione di variabili e classi, l'inizializzazione diretta di campi in quella maniera è concessa solo dall'ultima revisione dello standard, prima non era possibile)