Vizibilitate (programare)

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

Vizibilitatea (în limba engleză domeniul de aplicare), în programare , este existența și posibilitatea de a amintind un identificator , în special , o variabilă , într - un anumit punct al programului .

Vorbim despre identificatori și nu doar variabile, deoarece domeniul de aplicare este, de asemenea, o caracteristică a claselor , metodelor , blocurilor și a altor concepte care fac parte din limbajele de programare ; identificatorul, în acest caz, este un nume generic (o succesiune de caractere) reprezentând acea clasă, metodă, bloc sau variabilă.

Concept de vizibilitate

În limbile cu conceptul de bloc (cum ar fi C , C ++ , Pascal , Java și multe altele), o variabilă vizibilă într-un bloc este, de asemenea, vizibilă în cadrul oricăror blocuri imbricate .

Regulile fundamentale de vizibilitate sunt în general modificate de regula specială a umbririi , conform căreia o variabilă locală „ascunde” o posibilă variabilă omonimă definită în domeniul de aplicare superior. Cu alte cuvinte, dacă o variabilă globală var este definită într-un program și o variabilă locală cu același nume este definită într-un subrutin dat, subrutina în cauză pierde vizibilitatea variabilei globale, ascunsă de cea locală.

Zone de vizibilitate

Există două scopuri ale unui identificator comun tuturor limbajelor de programare orientate pe obiecte:

La nivel de bloc . Caracterizați variabilele locale; sunt identificatorii declarați într-un bloc. Domeniul de aplicare începe cu declarația identificatorului și se termină cu sfârșitul blocului în sine. Variabilele locale declarate în cadrul unei funcții, precum și parametrii unei funcții, au vizibilitate la nivel de bloc. În cazul blocurilor imbricate, dacă un identificator de bloc exterior are același nume cu cel al blocului interior, identificatorul blocului exterior este ascuns până la sfârșitul blocului interior, conform regulii de umbrire . Blocul intern vede doar propriul identificator local.

La nivel de fișier . Caracterizați variabilele globale; un identificator declarat în afara oricărei funcții are vizibilitate la nivel de fișier. Este cunoscut de toate funcțiile după declararea sa.

Exemplu

 <începe blocul 1>
     var x: ... / * x este vizibil aici * /
     <începe blocul 1.1>
         var y: ... / * x și y sunt vizibile aici * /
     <bloc final 1.1>
     <începe blocul 1.2>
         var z: ... / * x și z sunt vizibile aici * /
         <începe blocul 1.2.1>
             var y: ... / * x, zey sunt vizibile aici * /
         <bloc final 1.2.1>
     <bloc final 1.2>
 <bloc final 1>

Tipul domeniului de aplicare

În limbaje de programare , care au un concept de variabile, cum ar fi cele bazate pe procedurală sau paradigma orientată-obiect, putem distinge două categorii de variabile:

  • Variabile globale : sunt acele vizibile (adică referibile) din orice punct al unui program. Utilizarea excesivă a variabilelor globale nu este, în general, recomandată în practica de dezvoltare software , deoarece prezența lor facilitează apariția efectelor secundare care pot duce la erori de programare care sunt foarte greu de detectat și corectat .
  • Variabile locale : sunt acelea vizibile numai într-un anumit subrutin sau, în majoritatea limbilor structurate , numai într-un anumit bloc .

În limbajele orientate obiect , variabilele sau atributele de clasă sunt vizibile numai în instanțele clasei în care au fost declarate. În special, o variabilă declarată ca statică este unică pentru clasă și este partajată de fiecare dintre instanțele sale. Cu alte cuvinte, în fiecare instanță a clasei, acest atribut indică aceeași zonă de memorie, prin urmare o modificare a acesteia făcută într-o instanță este reflectată în toate celelalte instanțe ale aceleiași clase.

În limbajele orientate obiect , atributele (nestatice) ale unei clase sunt elemente individuale ale fiecărei instanțe distincte. În acest caz, în fiecare caz, acest atribut este prezent local obiectului în sine și distinct de cele prezente în alte instanțe din aceeași clasă.

În multe limbi, este posibil să declarați o variabilă într-un bloc al unei structuri de control sau să utilizați o construcție de bloc doar pentru a delimita sfera unei variabile locale sau să declarați o variabilă în cadrul unei expresii . Aceste variabile sunt vizibile numai în blocul sau expresia în care sunt declarate, așa cum se arată în exemplu. Aceste practici facilitează menținerea unei variabile în viață numai pentru timpul strict necesar, pentru a permite economisirea memoriei și curățarea în textul programului.

Conflicte și spații de nume

Pictogramă lupă mgx2.svg Același subiect în detaliu: Spațiul de nume .

Adesea, atunci când programăm proiecte mari, apar conflicte între diferite fișiere de nume variabile. Această problemă a fost parțial rezolvată prin introducerea spațiilor de nume .

Elemente conexe

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