"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