Jest jeszcze wczesna godzina, zatem macie kolejny materiał 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 danych składowych 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 inicjalizator statyczny
Praktycznie nie ma w tym tak dużej użyteczności z racji tego, że równie dobrze możemy i bez tego przypisywać różne wartości do danych statycznych, stałych czy zmiennych. Ważne jest też to, że wywołuje się to jako pierwsze, zanim wykona się jakikolwiek ruch w podanych dwóch przypadkach. To tyle z teoretycznych informacji.
PRZYKŁAD KODU ŹRÓDŁOWEGO
Zobaczmy teraz prosty kod źródłowy. Inicjalizator statyczny rozpoznamy bez większych problemów z powodu nietypowego zapisu. Samo słowo "static", a pod nim klamerki wyznaczające granice bloku instrukcji jakie mają zostać wykonane jako pierwsze.
KLASA "MAIN"
public class Main {
public static void main(String[] args) {
System.out.println("Dostaję się do danej statycznej - wartość wynosi " + StaticInitialiser.getN());
}
}
KLASA "STATICINITIALISER"
public class StaticInitialiser {
private static int n;
static {
System.out.println("Wykonuję inicjalizator statyczny...");
n = 350;
}
public static int getN() {
return n;
}
}
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 wywołanie metody "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 odczytywania liczby. Stanie się dokładnie to, co opisałem teoretycznie na samym początku.
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. Służy do inicjacji danych statycznych, choć można też wywoływać w nim metody.
Tyle w tym temacie, gdyż stanowi jedynie dodatek który jest rzadko wykorzystywany. Dzisiaj piszę Wam już "dobranoc", bo cztery artykuły w ciągu jednej doby to naprawdę wyczerpujące zajęcie.