Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


4.3.4

Exemplar-Initialisierungen


[1.1]Exemplar-Initialisierungen wurden in Java 1.1 eingeführt. Sie sind gewissermaßen das dynamische Gegenstück der statischen Initialisierungen und können dazu verwendet werden, nicht statischen Datenelementen Initialwerte zuzuweisen, wenn deren Ermittlung aufwändiger ist.

In erster Linie dienen Exemplar-Initialisierungen aber dazu, Anfangsaktionen für anonyme Klassen aufzunehmen. Da anonyme Klassen keine Konstruktoren definieren können, sind Exemplar-Initialisierungen hier die einzige Möglichkeit, Code vor der Benutzung eines Objekts auszuführen.

Eine Exemplar-Initialisierung besteht aus einem in geschweifte Klammern eingefassten Anweisungsblock. Wie statische Initialisierungen auch dürfen sie nur zwischen und nicht innerhalb von Methoden vereinbart werden.
  public class A {
  
    int x;
  
    // Zuweisung in Exemplar-Initialisierung
    { x = 0; }
  
    public A() {
    ...
    }
  
  }
Da Exemplar-Initialisierungen automatisch vor den Konstruktoren ausgeführt werden, können sie dazu benutzt werden, Initialisierungsaktionen aufzunehmen, die allen Konstruktoren gemeinsam sind. Dies ist insbesondere dann nützlich, falls die einzelnen Konstruktoren einer Klasse so verschieden sind, dass sich keine sinnvolle Aufrufkette ergibt.

Exemplar-Initialisierungen bieten so eine Alternative zu einer Methode, die gemeinsame Initialisierungsaktionen enthält. Stilistisch gesehen betont man dabei, dass die Aktionen gegenüber dem Ansatz mit einer Methode wirklich nur zur Initialisierung eines Exemplars und nicht zur Lebenszeit des Objekts benötigt werden.

Im Gegensatz zu Konstruktoren dürfen Exemplar-Initialisierungen weder return- noch throw-Anweisungen enthalten.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.