Video: Young Love: The Dean Gets Married / Jimmy and Janet Get Jobs / Maudine the Beauty Queen 2024
Dezvoltatorii Java întâmpină adesea probleme în determinarea motivelor pentru care o aplicație este greșită atunci când întâmpină o problemă de blocare a accesului. Orientarea de bază este că orice variabilă pe care o creați într-un bloc este definită numai în acel bloc. De exemplu, când vă uitați la următorul cod, vedeți un scenariu tipic de blocare a accesului.
// Creați o variabilă în interiorul unui bloc. pentru (int i = 0; i <10; i ++) // Afișați valoarea acelei variabile. Sistem. out. println ("Valoarea lui i este:" + i); // Accesul în afara blocului nu funcționează. Sistem. out. println ("Valoarea lui i este:" + i);
Exemplul afișează valoarea i în cadrul for loop (un tip de bloc) fără probleme. Cu toate acestea, încercarea de a accesa i în afara blocului nu este acceptabilă deoarece variabila nu este definită. Compilatorul va prinde această eroare.
O altă problemă potențială apare când o variabilă este definită în aplicație și într-un bloc. Deoarece această situație este susceptibilă de a crea probleme, versiunile mai noi ale Java nu vor permite tipul de cod afișat aici:
public static void main (String [] args) {// Definiți o variabilă. int i = 0; // Creați o variabilă în interiorul unui bloc. pentru (int i = 0; i <10; i ++) // Afișați valoarea acelei variabile. Sistem. out. println ("Valoarea lui i este:" + i); // Accesul în afara blocului nu funcționează. Sistem. out. println ("Valoarea lui i este:" + i);}
Compilatorul nu vă va împiedica întotdeauna să vă împușcați în picior. În multe situații, dezvoltatorul face ceva cu variabila și nu înțelege consecințele. De exemplu, codul următor este perfect legal în Java.
public static void principal (String [] args) {// Definirea unei variabile. int i = 0; // Creați o variabilă în interiorul unui bloc. pentru (i = 0; i <10; i ++) // Afișați valoarea acelei variabile. Sistem. out. println ("Valoarea lui i este:" + i); // Accesul în afara blocului nu funcționează. Sistem. out. println ("Valoarea lui i este:" + i ";}
Bucla" for "afișează valorile de la 0 la 9 din cauza condiției din declarația buclă for. Apel final către sistem. out. println () afișează o valoare de 10, nu 0 sau 9, cum s-ar putea aștepta unii dezvoltatori.
Partea i ++ a declarației apare și atunci condiția este evaluată, deci valoarea finală a i este de 10, nu 9, deoarece trebuie să fie 10 pentru ca condiția să devină falsă.
Ideea este că trebuie să ții cont de modul în care un bloc funcționează cu o variabilă pentru a determina dacă poți accesa variabila și ce valoare va conține la ieșirea din bloc.