Ich bin heute mehr oder weniger durch Zufall auf ein Element der Sprache Java gestoßen, dass mir vorher völlig unbekannt war: Normaler Code (Anweisungen) mitten in einer Klasse, nur eingeschlossen durch einen Block {}, aber nicht als Methode. Soetwas meine ich:
Beim Herumprobieren habe ich festgestellt, dass die beiden Blöcke nacheinander ausgeführt werden, wenn ich ein Objekt der Klasse Beispiel anlege, und zwar noch bevor der Konstruktor ausgeführt wird.
Nun meine Fragen:
- Worum handelt es sich bei den Blöcken, was ist das?
- Wozu benutzt man das?
- Was bewirkt hier das 'static', ich konnte keinen Unterschied feststellen?
- Welche Modifikatoren können hier sonst noch zum Einsatz kommen?
Code:
class Beispiel
{
public Beispiel()
{
System.out.println("Konstruktor");
}
{
for(int i=0; i<10; ++i) System.out.println(i);
}
static {
for(int i=9; i>=0; --i) System.out.println(i);
}
}
Beim Herumprobieren habe ich festgestellt, dass die beiden Blöcke nacheinander ausgeführt werden, wenn ich ein Objekt der Klasse Beispiel anlege, und zwar noch bevor der Konstruktor ausgeführt wird.
Nun meine Fragen:
- Worum handelt es sich bei den Blöcken, was ist das?
- Wozu benutzt man das?
- Was bewirkt hier das 'static', ich konnte keinen Unterschied feststellen?
- Welche Modifikatoren können hier sonst noch zum Einsatz kommen?