"안녕, 아미고!"

"이미 아시다시피 익명의 내부 클래스는 생성자를 가질 수 없습니다."

"그래. 별로 편하지 않지. 컨스트럭터가 정말 중요해."

"속담에 있듯이, 당신이 충분히 나쁘게 원한다면 불가능한 것은 없습니다."

"정적 변수에는 정적 생성자가 없지만 정적 초기화 프로그램(정적 블록)이 있음을 기억하십시오."

"응, 기억나."

"익명의 내부 클래스는 정적이 아니라는 점을 제외하고 정확히 동일한 초기화 프로그램을 갖습니다."

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

"이번에는 익명의 내부 클래스 코드를 빨간색으로 강조 표시하고 초기자(사실상 생성자)를 보라색으로 강조 표시했습니다. '생성자'에는 본문이 있지만 메서드 서명은 없습니다."

기대 현실
class Car
{
int policeNumber;
 Car(){
  policeNumber = number;
 }
}
class Car
{
int policeNumber;
{
policeNumber = number;
}
}

"이러한 클래스 내에서 변수를 선언하고 초기화 프로그램에서 초기화할 수 있습니다."

"훌륭합니다. 이제 제한이 훨씬 적습니다."

"그것으로 우리는 내부 클래스를 알아 가고 있습니다. 당신이 그것을 좋아했으면 좋겠다."

"많이요. 킴, 리시, 특히 당신 엘리가 받은 교훈은 정말 최고였습니다."

"말 잘하는 사람이구나! 계속해..."