Sobes.tech
Junior

Ce este domeniul de vizibilitate (scope) în programare?

sobes.tech AI

Răspuns de la AI

Domeniul de vizibilitate determină accesibilitatea unei variabile, metode sau clase într-o anumită parte a programului. Controlează unde pot fi utilizate entitățile denumite și unde încetează să mai existe.

În Java, principalele domenii de vizibilitate sunt:

  • Bloc: Limitat de o pereche de acolade {}. Variabilele declarate în interiorul blocului sunt accesibile doar în acest bloc și în blocurile sale imbricate.
  • Metodă: Limitat de corpul metodei. Parametrii metodei și variabilele declarate în interiorul acesteia sunt accesibile doar în această metodă.
  • Clasă: Limitat de corpul clasei. Membrii clasei (câmpurile) și metodele sunt accesibile din orice loc în interiorul acestei clase. Accesibilitatea lor din exterior depinde de modificatorii de acces (public, private, protected, default).
  • Pachet: Se aplică claselor și membrilor clasei (fără modificator de acces). Sunt accesibile oriunde în același pachet.
  • Global: În Java, nu există o adevărată domeniu global în C++. Cel mai apropiat sunt câmpurile public static final din clase, accesibile în întreaga aplicație.

Exemplu de domeniu de bloc:

// Variabila 'j' nu este vizibilă în afara acestui bloc
{
    int j = 10;
    System.out.println(j); // Disponibil
}
// System.out.println(j); // Eroare de compilare: simbol negăsit

Exemplu de domeniu de metodă:

public void metodaMea(int parametru) { // 'parametru' este vizibil doar aici
    int variabilaLocala = 5; // 'variabilaLocala' este vizibilă doar aici
    System.out.println(parametru); // Disponibil
    System.out.println(variabilaLocala); // Disponibil
}
// System.out.println(variabilaLocala); // Eroare de compilare: simbol negăsit

Domeniul de vizibilitate ajută la prevenirea conflictelor de nume, gestionarea ciclului de viață al variabilelor și îmbunătățirea lizibilității codului.