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.7.2

Lokale Variablen



In Methoden können lokale Variablen vereinbart werden. Ein wichtiger Unterschied zwischen den lokalen Variablen und den Datenelementen der Klassen besteht in der Initialisierung: Variablen in Methoden werden nicht automatisch initialisiert.

  public int sum(int[] a) {
    // lokale Variable mit Initialisierung
    int temp = 0;

    // Block-lokale Variable i
    for(int i = 0; i < a.length; i++)
      temp += a[i];

    return temp;
  }

final innerhalb von Methoden

[1.1]Seit Version 1.1 können innerhalb von Methoden auch lokale Konstanten vereinbart werden. Hierzu wird wie bei konstanten Datenelementen der Modifier final in die Deklaration eingefügt.

Leere Finals sind ebenfalls erlaubt, d. h., der Initialwert muss nicht bei der Deklaration angegeben, sondern kann auch noch zu einem späteren Zeitpunkt zugewiesen werden. Wichtig ist hierbei, dass erst nach der Zuweisung lesend auf die Konstante zugegriffen werden darf. Bei einer Verletzung dieser Regel liefert der Compiler eine Fehlermeldung. Im folgenden Beispiel wird ein Array als leeres Final vereinbart, um sicherzustellen, dass genau eine Zuweisung in der Methode erfolgt. Bei Arrays muss genauso wie bei Objekt-Referenzen beachtet werden, dass die Elemente wie sonst auch mehrmals Zuweisungen erhalten können.
  public int[] calcSquares(int[] a) {
    // Lokale Variable als leeres Final
    final int[] squares;

    // Einmalige Zuweisung
    squares = new int[a.length];

    // Zuweisung an Elemente ist erlaubt!
    for(int i = 0; i < a.length; i++)
      squares[i] = a[i]*a[i];

    return squares;
  }

Im Gegensatz zu Datenelementen können lokale Variablen nicht als static und somit auch nicht als final static vereinbart werden.


 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.