Video: Authors, Lawyers, Politicians, Statesmen, U.S. Representatives from Congress (1950s Interviews) 2025
Java-utviklere opplever ofte problemer med å finne ut hvorfor et program mislykkes når det oppstår et problem med blokktilgang. Den grunnleggende retningslinjen er at en hvilken som helst variabel du lager i en blokk, er definert bare innenfor den aktuelle blokk. Når du for eksempel ser på følgende kode, ser du et typisk blokktilgangsscenario.
// Opprett en variabel i en blokk. for (int i = 0; i <10; i ++) // Vis verdien av variabelen. System. ute. println ("Verdien av jeg er:" + i); // Tilgang utenfor blokken virker ikke. System. ute. println ("Verdien av jeg er:" + i);
Eksemplet viser verdien av jeg innen forløp (en type blokk) uten problem. Det er imidlertid ikke tillatt å prøve å få tilgang til jeg utenfor blokken, fordi variabelen ikke er definert. Kompilatoren vil fange denne feilen.
Et annet potensielt problem oppstår når en variabel er definert i applikasjonen og også innenfor en blokk. Fordi denne situasjonen sannsynligvis vil opprette problemer, vil nyere versjoner av Java ikke tillate den typen kode som vises her:
Statisk statisk tomt hoved (String [] args) {// Definer en variabel. int i = 0; // Opprett en variabel i en blokk. for (int i = 0; i <10; i ++) // Vis verdien av variabelen. System. ute. println ("Verdien av jeg er:" + i); // Tilgang utenfor blokken virker ikke. System. ute. println ("Verdien av jeg er:" + i);}
Kompilatoren forhindrer ikke alltid at du skyter deg selv i foten. I mange situasjoner gjør utvikleren noe med variabelen og forstår ikke konsekvensene. For eksempel er følgende kode helt lovlig i Java.
Offentlig statisk tomrom main (String [] args) {// Definer en variabel. int i = 0; // Opprett en variabel i en blokk. for (i = 0; i <10; i ++) // Vis verdien av variabelen. System. ute. println ("Verdien av jeg er:" + i); // Tilgang utenfor blokken virker ikke. System. ute. println ("Verdien av i er:" + i);}
For-sløyfen viser verdiene 0 til 9 på grunn av tilstanden i for-loop-deklarasjonen. Det endelige anropet til System. ute. println () viser en verdi på 10, ikke 0 eller 9 som noen utviklere kan forvente.
I + + delen av erklæringen skjer, og deretter vurderes tilstanden, så den endelige verdien av i er 10, ikke 9 fordi den må være 10 for at tilstanden skal bli feil.
Poenget er at du må vurdere hvordan en blokk fungerer med en variabel for å avgjøre om du får tilgang til variabelen og hva verdien vil inneholde ved utgang fra blokken.
