“嗨,阿米戈!”
“如您所知,匿名内部类不能有构造函数。”
“是啊。不太方便。构造函数真的很重要。”
“俗话说,只要你想得够坏,没有什么是不可能的。”
“请记住,静态变量没有静态构造函数,但有一个静态初始化器——静态块。”
“嗯,我记得。”
“匿名内部类具有完全相同的初始值设定项,只是它不是静态的。”
例子
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;
}
}
“这次我用红色突出显示了匿名内部类代码,并用紫色突出显示了它的初始化程序(实际上是它的构造函数)。‘构造函数’有一个主体,但没有方法签名:”
期待 | 现实 |
---|---|
|
|
“你可以在这样的类中声明变量并在初始化器中初始化它们。”
“太好了,现在他们的限制少了很多。”
“有了这个,我们开始了解内部类。我希望你喜欢它。”
“很多。Kim、Rishi,尤其是你,Ellie 的课程简直是一流的。”
“真是个甜言蜜语!继续……”
GO TO FULL VERSION