"Cześć, Amigo!"

„Jak już wiesz, anonimowe klasy wewnętrzne nie mogą mieć konstruktora”.

„Tak. To niezbyt wygodne. Konstruktorzy są naprawdę ważni”.

„Jak to się mówi, nie ma rzeczy niemożliwych, jeśli bardzo się tego chce”.

„Pamiętaj, zmienne statyczne nie mają statycznych konstruktorów, ale istnieje statyczny inicjator – blok statyczny”.

"Ta, pamiętam."

„Anonimowe klasy wewnętrzne mają dokładnie ten sam inicjator, z wyjątkiem tego, że nie jest statyczny”.

Przykład
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;
 }
}

„Tym razem zaznaczyłem anonimowy kod klasy wewnętrznej na czerwono, a jej inicjator (w efekcie konstruktor) na fioletowo.„ Konstruktor ”ma ciało, ale nie ma sygnatury metody:”

Oczekiwanie Rzeczywistość
class Car
{
int policeNumber;
 Car(){
  policeNumber = number;
 }
}
class Car
{
int policeNumber;
{
policeNumber = number;
}
}

„Możesz zadeklarować zmienne wewnątrz takiej klasy i zainicjować je w inicjatorze”.

„Wspaniale, teraz mają znacznie mniej ograniczeń”.

„W ten sposób poznajemy klasy wewnętrzne. Mam nadzieję, że ci się podobało”.

„Dużo. Lekcje od Kim, Rishi, a zwłaszcza od ciebie, Ellie, były po prostu na najwyższym poziomie”.

„Co za słodki gaduła! Kontynuuj…”