"Ciao, Amico!"

"Come già sai, le classi interne anonime non possono avere un costruttore."

"Sì. Non è molto conveniente. I costruttori sono molto importanti."

"Come dice il proverbio, niente è impossibile se lo vuoi abbastanza."

"Ricorda, le variabili statiche non hanno costruttori statici, ma esiste un inizializzatore statico: il blocco statico."

"Sì, mi ricordo."

"Le classi interne anonime hanno esattamente lo stesso inizializzatore, tranne che non è statico."

Esempio
class Car
{
 public ArrayListcreatePoliceCars(int count)
 {
  ArrayList result = new ArrayList();

  for(int i = 0; i < count; i++)
  {
    final int number = i;
    result.add(new Car()
    {
      int policeNumber;
      {
        policeNumber = number;
      }
    });
  }
  return result;
 }
}

"Questa volta ho evidenziato il codice anonimo della classe interna in rosso e il suo inizializzatore (in effetti, il suo costruttore) in viola. Il 'costruttore' ha un corpo, ma non c'è la firma del metodo:"

Aspettativa La realtà
class Car
{
int policeNumber;
 Car(){
  policeNumber = number;
 }
}
class Car
{
int policeNumber;
{
policeNumber = number;
}
}

"Puoi dichiarare variabili all'interno di una tale classe e inizializzarle nell'inizializzatore."

"Eccellente, ora ci sono molte meno restrizioni."

"Con questo, stiamo imparando a conoscere le classi interne. Spero ti sia piaciuto."

"Molto. Le lezioni da Kim, Rishi, e soprattutto da te, Ellie, sono state semplicemente di prim'ordine."

"Che chiacchierone! Continua..."