"Cześć, Amigo!"
„Jak już wiesz, anonimowe klasy wewnętrzne nie mogą mieć konstruktora”.
„Tak. To niezbyt wygodne. Konstruktorzy są naprawdę ważni”.
„Jak to się mówi, nie ma rzeczy niemożliwych, jeśli bardzo się tego chce”.
„Pamiętaj, zmienne statyczne nie mają statycznych konstruktorów, ale istnieje statyczny inicjator – blok statyczny”.
"Ta, pamiętam."
„Anonimowe klasy wewnętrzne mają dokładnie ten sam inicjator, z wyjątkiem tego, że nie jest statyczny”.
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;
}
}
„Tym razem zaznaczyłem anonimowy kod klasy wewnętrznej na czerwono, a jej inicjator (w efekcie konstruktor) na fioletowo.„ Konstruktor ”ma ciało, ale nie ma sygnatury metody:”
Oczekiwanie | Rzeczywistość |
---|---|
|
|
„Możesz zadeklarować zmienne wewnątrz takiej klasy i zainicjować je w inicjatorze”.
„Wspaniale, teraz mają znacznie mniej ograniczeń”.
„W ten sposób poznajemy klasy wewnętrzne. Mam nadzieję, że ci się podobało”.
„Dużo. Lekcje od Kim, Rishi, a zwłaszcza od ciebie, Ellie, były po prostu na najwyższym poziomie”.
„Co za słodki gaduła! Kontynuuj…”
GO TO FULL VERSION