Jest jeszcze wczesna godzina, zatem macie moją wypowiedź już po raz czwarty z rzędu TEGO SAMEGO DNIA! Nie wiem jak ja to znoszę i póki co, nie chcę się nad tym zastanawiać. Przechodzimy do kolejnego prostego tematu związanego z Javą, który macie traktować jako całkowicie opcjonalny. Dotyczy on statyczności, jest rzadko stosowany, a to coś w języku Java kryje się pod nazwą "inicjalizator statyczny". Poznajcie szerzej ten termin razem z przykładem pozostawionym w środku.
Tweet |
INICJALIZATOR STATYCZNY W JĘZYKU JAVA. WYJAŚNIENIE TERMINU
Ten pięknie brzmiący termin to nietypowy blok kodu pozwalający inicjować wartości zmiennych i stałych statycznych (modyfikator "static"). Wywołuje się on tylko JEDEN RAZ w dwóch sytuacjach:
- gdy utworzymy obiekt posiadający inicjalizator statyczny
- gdy będziemy chcieli skorzystać z jakiejkolwiek danej statycznej w klasie, która posiada ten blok
Praktycznie nie ma w tym tak dużej użyteczności z racji tego, że równie dobrze możemy i bez tej klauzuli przypisywać różne wartości do danych statycznych, stałych czy też nie. Ważne jest też to, że wywołuje się to jako pierwsze, zanim wykona się jakikolwiek ruch w stronę danych statycznych, bądź utworzenia obiektu bazującego na danej klasie. To tyle z informacji. Zobaczmy teraz prosty kod źródłowy.
PRZYKŁAD KODU ŹRÓDŁOWEGO
Inicjalizator statyczny rozpoznamy bez większych problemów wyróżniającym się sposobem zapisu. Samo słowo "static", a pod nim klamerki wyznaczające granice bloku instrukcji jakie mają zostać wykonane.
KLASA "MAIN"
public class Main
{
public static void main(String[] args)
{
System.out.println("Dostaję się do danej statycznej - wartość wynosi " + StaticInitializer.getN());
}
}
KLASA "STATICINITIALIZER"
public class StaticInitializer
{
private static int n;
static
{
System.out.println("Wykonuję inicjalizator statyczny...");
n = 350;
}
public static int getN()
{
return n;
}
}
Nie zwracajcie uwagi na typ "static" w metodzie "getN" - on nie ma z tym nic wspólnego. Został tu zawarty, gdyż metoda "main" jest statyczna i (jak każda inna funkcja statyczna) nie pozwala ona na wywoływanie metod zwykłych. Aby zobaczyć efekt w pełni, wypadałoby sobie to skompilować i uruchomić, ale nikt tego nie będzie od Was wymagał.
Szybko streszczając, efekt jest taki, że funkcja "System.out.println" wypisuje tekst wraz z wartością zmiennej statycznej, ale zanim tak się stanie, to inicjalizator statyczny przejmie pałeczkę, wykona swoją część wypisując przy okazji własny komunikat, przypisze wartość liczbową zmiennej "n" i dopiero po zakończeniu tego bloku, zostanie "kontynuowany" proces odczytania liczby.
![]() |
Inicjalizator statyczny w języku Java wykonuje się jako pierwszy przed podjęciem jakichkolwiek czynności dotyczących danych statycznych, bądź klasy, która je przechowuje.
Tyle w tym temacie, gdyż stanowi jedynie dodatek, który jest rzadko wykorzystywany. Dzisiaj mówię Wam już "dobranoc" bo cztery artykuły w ciągu jednej doby to naprawdę wyczerpujące zajęcie.