„Hallo, Amigo!“

„Wie Sie bereits wissen, können anonyme innere Klassen keinen Konstruktor haben.“

„Ja. Das ist nicht sehr praktisch. Konstrukteure sind wirklich wichtig.“

„Wie das Sprichwort sagt: Nichts ist unmöglich, wenn man es unbedingt genug will.“

„Denken Sie daran, dass statische Variablen keine statischen Konstruktoren haben, aber es gibt einen statischen Initialisierer – den statischen Block.“

"Ja, ich erinnere mich."

„Anonyme innere Klassen haben genau den gleichen Initialisierer, außer dass er nicht statisch ist.“

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

„Dieses Mal habe ich den anonymen inneren Klassencode rot hervorgehoben und seinen Initialisierer (tatsächlich seinen Konstruktor) lila. Der ‚Konstruktor‘ hat einen Körper, aber es gibt keine Methodensignatur:“

Erwartung Wirklichkeit
class Car
{
int policeNumber;
 Car(){
  policeNumber = number;
 }
}
class Car
{
int policeNumber;
{
policeNumber = number;
}
}

„Sie können Variablen innerhalb einer solchen Klasse deklarieren und sie im Initialisierer initialisieren.“

„Ausgezeichnet, jetzt gibt es viel weniger Einschränkungen.“

„Damit lernen wir innere Klassen kennen. Ich hoffe, es hat euch gefallen.“

„Viel. Die Lektionen von Kim, Rishi und vor allem dir, Ellie, waren einfach erstklassig.“

„Was für ein süßer Redner! Weiter so…“