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ś kryje się pod nazwą "inicjalizator statyczny". Poznajcie szerzej ten termin razem z przykładem pozostawionym w środku.

INICJALIZATOR STATYCZNY - 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.

STATYCZNY BLOK KODU W PROGRAMIE

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 - blok "static"

Inicjalizator statyczny 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.

PODOBNE ARTYKUŁY