“嗨,阿米戈!”

“如您所知,匿名内部类不能有构造函数。”

“是啊。不太方便。构造函数真的很重要。”

“俗话说,只要你想得够坏,没有什么是不可能的。”

“请记住,静态变量没有静态构造函数,但有一个静态初始化器——静态块。”

“嗯,我记得。”

“匿名内部类具有完全相同的初始值设定项,只是它不是静态的。”

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

“你可以在这样的类中声明变量并在初始化器中初始化它们。”

“太好了,现在他们的限制少了很多。”

“有了这个,我们开始了解内部类。我希望你喜欢它。”

“很多。Kim、Rishi,尤其是你,Ellie 的课程简直是一流的。”

“真是个甜言蜜语!继续……”