Video: Software Testing Tutorials for Beginners 2024
Java-Entwickler haben häufig Probleme, herauszufinden, warum sich eine Anwendung bei einem Blockzugriffsproblem nicht richtig verhält. Die grundlegende Richtlinie besagt, dass jede Variable, die Sie innerhalb eines Blocks erstellen, nur innerhalb dieses Blocks definiert ist. Wenn Sie sich beispielsweise den folgenden Code ansehen, sehen Sie ein typisches Blockzugriffsszenario.
// Erzeuge eine Variable innerhalb eines Blocks. for (int i = 0; i <10; i ++) // Zeigt den Wert dieser Variablen an. System. aus. println ("Der Wert von i ist:" + i); // Zugriff außerhalb des Blocks funktioniert nicht. System. aus. println ("Der Wert von i ist:" + i);
Das Beispiel zeigt den Wert von i innerhalb der for-Schleife (ein Blocktyp) ohne Problem an. Der Zugriff auf i außerhalb des Blocks ist jedoch nicht zulässig, da die Variable nicht definiert ist. Der Compiler wird diesen Fehler abfangen.
Ein weiteres potenzielles Problem tritt auf, wenn eine Variable in der Anwendung und auch innerhalb eines Blocks definiert ist. Da diese Situation wahrscheinlich Probleme bereitet, lassen neuere Java-Versionen die hier gezeigte Art von Code nicht zu:
public static void main (String [] args) {// Definiere eine Variable. inti = 0; // Erstellen Sie eine Variable innerhalb eines Blocks. for (int i = 0; i <10; i ++) // Zeigt den Wert dieser Variablen an. System. aus. println ("Der Wert von i ist:" + i); // Zugriff außerhalb des Blocks funktioniert nicht. System. aus. println ("Der Wert von i ist:" + i);}
Der Compiler verhindert nicht immer, dass Sie sich selbst in den Fuß schießen. In vielen Situationen macht der Entwickler etwas mit der Variablen und versteht die Konsequenzen nicht. Zum Beispiel ist der folgende Code in Java vollkommen legal.
public static void main (String [] Argumente) {// Definiere eine Variable. inti = 0; // Erstellen Sie eine Variable innerhalb eines Blocks. for (i = 0; i <10; i ++) // Zeigt den Wert dieser Variablen an. System. aus. println ("Der Wert von i ist:" + i); // Zugriff außerhalb des Blocks funktioniert nicht. System. aus. println ("Der Wert von i ist:" + i);}
Die for-Schleife zeigt die Werte 0 bis 9 aufgrund der Bedingung innerhalb der for-Schleifen-Deklaration an. Der letzte Aufruf an System. aus. println () zeigt einen Wert von 10 an, nicht 0 oder 9, wie einige Entwickler erwarten könnten.
Der i ++ - Teil der Deklaration tritt auf, und dann wird die Bedingung ausgewertet, sodass der endgültige Wert von i 10 und nicht 9 ist, da er 10 sein muss, damit die Bedingung falsch wird.
Der Punkt ist, dass Sie berücksichtigen müssen, wie ein Block mit einer Variablen arbeitet, um zu bestimmen, ob Sie auf die Variable zugreifen können und was der Wert beim Verlassen des Blocks enthalten wird.