Bloki inicjalizacyjne

O1
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam. Mam dość głupie pytanie dotyczące bloków inicjalizacyjnych w Javie. Mianowice po co w ogóle są bloki inicjalizacyjne?

Jaka jest różnica jeśli możemy zainicjalizować np tak zmienną:

Kopiuj
class Klasa {
	
	Klasa1 a;
	Klasa1 b;
	{
		a = new Klasa1();
		b = new Klasa1();
	}
}

class Klasa1 {
	
	int x;
}
 

a możemy też tak:

Kopiuj
class Klasa {
	
	Klasa1 a = new Klasa1();
	Klasa1 b = new Klasa1();

}

class Klasa1 {
	
	int x;
} 

Tak samo z blokiem inicjalizacji zmiennych statycznych. W jakim celu został stworzony w ogóle ten blok inicjalizacji? Osobiście nie widzę, żadnych korzyści wynikających z jego stosowania. Może pytanie dość głupie, ale jeśli ktoś może to proszę o udzielnie odpowiedzi.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

A co jeśli chcesz w takim bloku wywołać metodę która może rzucić wyjątek? W bloku możesz coś z tym zrobić, a w inicjalizacji pola klasy nie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.