Umbră

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică și în special în programare , umbrirea este regula de vizibilitate conform căreia o variabilă locală „ascunde”, într-un bloc, o variabilă cu același nume definit în blocul superior.

Programele pot fi structurate în blocuri, iar blocurile pot fi imbricate împreună (conținute una în cealaltă). Fiecare bloc poate conține declarații variabile, definite de proprii identificatori . Dacă o variabilă dintr-un bloc interior are același nume (același identificator) ca o variabilă într-un bloc exterior, acesta din urmă este păstrat „ascuns” de variabila cu același nume în blocul interior până când își termină propria execuție .

Vezi următorul exemplu scris în pseudocod :

 1 <începe blocul 1>
 2 var x ← 11 / * aici variabila x este 11 * /
 3 <începe blocul 1.1>
 4 var x ← 22 / * aici variabila x este 22 * ​​/
 5 var x ← (x + 1) / * aici variabila x este 23 * /
 6 <începe blocul 1.1.1>
 7 var x ← 33 / * aici variabila x este 33 * /
 8 <bloc final 1.1.1>
 9 tipări x / * aici variabila x este 23 * /
10 <bloc final 1.1>
11 tipări x / * aici variabila x este 11 * /
12 <bloc final 1>

Toate variabilele celor 3 blocuri au același nume (același identificator), adică „x”. Variabila definită în blocul exterior (blocul 1) are valoarea 11. De îndată ce este creat blocul 1.1, când o nouă variabilă „x” (variabilă locală în raport cu blocul 1.1) este definită în interiorul acestuia, valoarea externă variabila x aparținând blocului 1 este „obscurizată” de valoarea 22 a noii variabile locale, conform regulii de umbrire. Aici, deci, că x ia valoarea 22 în linia 4 și valoarea 23 în linia 5. Valoarea variabilei x a blocului 1 rămâne, totuși, 11, deoarece modificările se fac doar pe variabila internă din blocul 1.1. Cu aceeași regulă de umbrire, în blocul 1.1.1, o nouă variabilă locală cu același identificator „x” ascunde variabilele „x” exterioare. În linia 7, valoarea 33 se referă la variabila locală a blocului 1.1.1. În linia 9, regula de umbrire face ca x să ia valoarea 23, deoarece este „x” din blocul 1.1 (blocul 1.1.1 a fost închis pe linia anterioară). În cele din urmă, în linia 11 se imprimă valoarea 11, deoarece se referă la cel mai exterior x, care este cel creat în blocul 1.

Bibliografie

  • HM Deitel; PJ Deitel. Fundamentele programării Java . Milano, Apogeo, 2005. ISBN 88-503-2388-3 .

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT