« Salut Amigo ! »

"Comme vous le savez déjà, les classes internes anonymes ne peuvent pas avoir de constructeur."

"Ouais. Ce n'est pas très pratique. Les constructeurs sont vraiment importants."

"Comme le dit le dicton, rien n'est impossible si vous le voulez vraiment."

"N'oubliez pas que les variables statiques n'ont pas de constructeurs statiques, mais il existe un initialiseur statique - le bloc statique."

"Ouais je me souviens."

"Les classes internes anonymes ont exactement le même initialiseur, sauf qu'il n'est pas statique."

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

"Cette fois, j'ai mis en surbrillance le code de la classe interne anonyme en rouge et son initialiseur (en fait, son constructeur) en violet. Le 'constructeur' a un corps, mais il n'y a pas de signature de méthode :"

Attente Réalité
class Car
{
int policeNumber;
 Car(){
  policeNumber = number;
 }
}
class Car
{
int policeNumber;
{
policeNumber = number;
}
}

"Vous pouvez déclarer des variables à l'intérieur d'une telle classe et les initialiser dans l'initialiseur."

"Excellent, maintenant il y a beaucoup moins de restrictions."

"Avec ça, nous apprenons à connaître les classes internes. J'espère que ça vous a plu."

"Beaucoup. Les leçons de Kim, Rishi, et surtout de toi, Ellie, ont été tout simplement excellentes."

« Quel beau parleur ! Continuez… »