Programmierung Java: Beobachten Scope innerhalb eines Blocks

Java-Entwickler häufig Probleme auftreten, herauszufinden, warum eine Anwendung misbehaving wird, wenn ein Blockzugriffsproblem zu begegnen. Die grundlegende Richtlinie ist, dass jede Variable, die Sie innerhalb eines Blocks erstellen, die nur innerhalb dieses Blocks definiert ist. Zum Beispiel, wenn Sie auf den folgenden Code betrachten, sehen Sie ein typisches Blockzugriffsszenario.

// Eine Variable innerhalb einer block.for (int i = 0-i lt; 10- i ++) // Zeigt den Wert dieser variable.System.out.println ( "Der Wert von i ist:" + i) - // Zugriff außerhalb des Blocks nicht work.System.out.println ( "The Wert von i ist: "+ i) -

Das Beispiel zeigt den Wert von i innerhalb der for-Schleife (eine Art von Block) ohne Problem. Allerdings habe ich außerhalb des Blocks zuzugreifen versuchen, ist nicht akzeptabel, da die Variable nicht definiert ist. Der Compiler wird diesen Fehler.

Ein weiteres mögliches Problem tritt auf, wenn eine Variable in der Anwendung definiert wird, und auch innerhalb eines Blocks. Da diese Situation Probleme ist wahrscheinlich zu schaffen, neuere Versionen von Java wird die Art von Code nicht zulassen, dass hier gezeigt:

public static void main (String [] args) {// eine variable.int definieren i = 0 - // Erstellen Sie eine Variable in einem block.for (int i = 0-i lt; 10- i ++) // Zeigt den Wert dieser variable.System.out.println ( "Der Wert von i ist:" + i) - // Zugriff außerhalb des Blocks nicht work.System.out.println ( "The Wert von i ist: "+ i) -}

Der Compiler wird nicht immer verhindern, dass Sie selbst in den Fuß zu schießen. In vielen Fällen macht der Entwickler etwas mit der variabel und nicht versteht, die Folgen. Zum Beispiel ist der folgende Code vollkommen legal in Java.

public static void main (String [] args) {// eine variable.int definieren i = 0 - // Erstellen Sie eine Variable in einem block.for (i = 0- i lt; 10- i ++) // Zeigt den Wert dieser variable.System.out.println ( "Der Wert von i ist:" + i) - // Zugriff außerhalb des Blocks nicht work.System.out.println ( "The Wert von i ist: "+ i) -}

Die for-Schleife zeigt die Werte von 0 bis 9, weil der Zustand innerhalb der for-Schleife Erklärung. Der letzte Aufruf von System.out.println () zeigt einen Wert von 10, nicht 0 oder 9 als einige Entwickler vielleicht erwarten.

Der i ++ Teil der Deklaration erfolgt, und dann wird die Bedingung ausgewertet, so dass der endgültige Wert von i ist 10, 9 nicht, weil es 10 sein, um für die Bedingung falsch zu werden.

Der Punkt ist, dass Sie müssen prüfen, wie ein Block mit einer Variablen arbeitet, um zu bestimmen, ob Sie die Variable zugreifen kann und was der Wert beim Austritt aus dem Block enthalten wird.

Menü