Bloki inicjalizacyjne

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ą:

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

class Klasa1 {
	
	int x;
}
 

a możemy też tak:

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.

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1