"Olá, amigo!"
"Como você já sabe, classes internas anônimas não podem ter um construtor."
"Sim. Não é muito conveniente. Os construtores são realmente importantes."
"Como diz o ditado, nada é impossível se você quiser muito."
"Lembre-se, variáveis estáticas não possuem construtores estáticos, mas existe um inicializador estático - o bloco estático."
"Sim, eu me lembro."
"Classes internas anônimas têm exatamente o mesmo inicializador, exceto que não são estáticas."
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;
}
}
"Desta vez, destaquei o código anônimo da classe interna em vermelho e seu inicializador (na verdade, seu construtor) em roxo. O 'construtor' tem um corpo, mas não há assinatura de método:"
Expectativa | Realidade |
---|---|
|
|
"Você pode declarar variáveis dentro de tal classe e inicializá-las no inicializador."
"Excelente, agora há muito menos restrições."
"Com isso, estamos conhecendo classes internas. Espero que tenham gostado."
"Muito. As lições de Kim, Rishi e especialmente você, Ellie, foram simplesmente excelentes."
"Que fala doce! Continue..."
GO TO FULL VERSION