"Hej, Amigo!"

"Som du redan vet kan anonyma inre klasser inte ha en konstruktör."

"Ja. Det är inte särskilt bekvämt. Konstruktörer är verkligen viktiga."

"Som ordspråket säger, ingenting är omöjligt om du vill ha det tillräckligt illa."

"Kom ihåg att statiska variabler inte har statiska konstruktorer, men det finns en statisk initialiserare - det statiska blocket."

"Ja, jag minns."

"Anonyma inre klasser har exakt samma initialiserare, förutom att den inte är statisk."

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

"Den här gången markerade jag den anonyma inre klasskoden i rött och dess initialiserare (i själva verket dess konstruktor) i lila. 'Konstruktören' har en kropp, men det finns ingen metodsignatur:"

Förväntan Verklighet
class Car
{
int policeNumber;
 Car(){
  policeNumber = number;
 }
}
class Car
{
int policeNumber;
{
policeNumber = number;
}
}

"Du kan deklarera variabler i en sådan klass och initiera dem i initialiseraren."

"Utmärkt, nu finns det mycket färre begränsningar."

"Med det lär vi känna inre klasser. Jag hoppas att du gillade det."

"Mycket. Lärdomarna från Kim, Rishi, och speciellt dig, Ellie, har helt enkelt varit top notch."

"Vilken söt pratare! Fortsätt..."