Version:Test
©Raddy 2002

Java IV                                                     ZURÜCK

Lokale
Variablen
beim
verschachtelten
Methodenaufruf
a-absatz.pcx (280 Byte)
Wie verhalten sich Lokale Variablen beim 
verschachtelten Methodenaufruf
Das folgende Programm zeigt, daß eine lokale Variable bis zum
Ende der Methode erhalten bleibt (bis zur Ende-Klammer), 
auch wenn zwischendurch eine andere Methode aufgerufen wird.
Klassenvariablen werden nämlich in diesem Fall auf den 
sogenannten Stack gelegt.
  
a-absatz.pcx (280 Byte)
Beispiel: Stack.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

//////////////////////////////////////////// Stack.java
public class Stack
{
  public static void main(String args[])
  {
    int a =42;   
    test();
    System.out.println("Variable a hat den Wert: "+a);
  }
  static void test()
  {
     int a=9999;
  }
}
/////////////////////////////////////////////////////////////////////
wpe8.jpg (18289 Byte)   
a-absatz.pcx (280 Byte)
Erklärung des Programms
In Zeile 6 wird die lokale Variable a initialisiert.

In Zeile 7 wird die Methode test aufgerufen. Die lokale Variable
wird automatisch zwischengespeichert (man sagt, die Variable
wird auf den Stack gelegt).

In der Methode test wird eine lokale Variable a mit dem Wert 9999 
initialisiert. Diese Variable a hat jedoch nichts mit der Variablen a 
aus der main-Methode zu tun, denn die Variable a der main-Methode
und die Variable a der test-Methode sind zwei vollkommen 
unabhängige Variablen!

In Zeile 8 wird das Programm fortgesetzt, nachdem die Methode
test verlassen wird. In Zeile 8 wird nun die lokale Variable a
der main-Methode ausgegeben, die ihren Wert (42) während
der Ausführung der Methode test behalten hat.