zur vorherigen Seite zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nein, nichts ist falsch.

public class UnitTest
{

  public static long factorial( int N )
  {
    long fct = 1;
    for ( int j=1; j<=N; j++ )
      fct *= j;
    return fct;
  }

  public static void main (String[] args )
  {
     int N = 10;
     System.out.println(
       "factorial of " + N + ": " + factorial(N));
  }
}

Gültigkeitsbereich (Scope) Rückblick

Scope von N

Der Gültigkeitsbereich eines formalen Parameters ist der Abschnitt des Quellcodes, der den Parameter sehen kann. Der Gültigkeitsbereich eines formalen Parameters ist der Körper seiner Methode. Der Gültigkeitsbereich des Parameters N ist der Körper seiner Methode. Der Gültigkeitsbereich der Variablen N ist der Hauptteil von main().

In dem oben stehenden Code gibt es also keine Überschneidung zwischen N in der main() Methode und N in factorial().

Die main() Methode kopiert den Wert 10 in ihre lokale Variable N. Wenn dann factorial(N) ausgeführt wird, wird die 10 aus der lokalen Variable in den formalen Parameter der aufgerufenen Methode kopiert. Der Code der Methode beschreibt, wie der Parameter verwendet wird.

Die Abbildung zeigt die zwei verschiedenen Ns und den jeweiligen Gültigkeitsbereich.


Frage 10:

Wenn factorial() den Wert in N ändern würde, hätte das Auswirkungen auf main()?


zur vorherigen Seite zum Inhaltsverzeichnis   zur nächsten Seite