"Bună, Amigo!"

„După cum știți deja, clasele interne anonime nu pot avea un constructor”.

"Da. Nu este foarte convenabil. Constructorii sunt foarte importanți."

„După cum se spune, nimic nu este imposibil dacă îți dorești destul de mult.”

„Amintiți-vă, variabilele statice nu au constructori statici, dar există un inițializator static – blocul static.”

— Da, îmi amintesc.

„Clasele interne anonime au exact același inițializator, cu excepția faptului că nu este static.”

Exemplu
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;
 }
}

„De data aceasta am evidențiat codul anonim al clasei interne în roșu, iar inițializatorul său (de fapt, constructorul său) în violet. „Constructorul” are un corp, dar nu există nicio semnătură a metodei:”

Aşteptare Realitate
class Car
{
int policeNumber;
 Car(){
  policeNumber = number;
 }
}
class Car
{
int policeNumber;
{
policeNumber = number;
}
}

„Puteți declara variabile în interiorul unei astfel de clase și le puteți inițializa în inițializator.”

„Excelent, acum sunt mult mai puține restricții.”

"Cu asta, facem cunoștință cu clasele interioare. Sper că ți-a plăcut."

„Multe. Lecțiile de la Kim, Rishi și mai ales de la tine, Ellie, au fost pur și simplu de top”.

"Ce vorbăreț dulce! Continuă..."