"Hallo tegen mijn favoriete student. Nu ga ik je vertellen over de zichtbaarheid van variabelen."

"Huh? Kunnen variabelen onzichtbaar zijn?"

"Nee. De 'zichtbaarheid' of scope van een variabele betekent de plaatsen in de code waar u naar die variabele kunt verwijzen. Sommige variabelen kunt u overal in het programma gebruiken, maar andere kunnen alleen binnen hun klasse worden gebruikt, en nog andere - slechts binnen één methode. "

"U kunt bijvoorbeeld geen variabele gebruiken voordat deze is gedeclareerd."

"Dat is logisch."

"Hier zijn een paar voorbeelden:"


public class Variables

{
   private static String TEXT = "The end.";
  ┗━━━━━━━━━━━━━━┛
   public static void main (String[] args)
                          ┗━━━━━━━┛
  {
     System.out.println("Hi");
     String s = "Hi!";
   ┏┗━━━━┛
    System.out.println(s);
    if (args != NULL)
    {
       String s2 = s;
      ┗━━━━┛
   
      System.out.println(s2);
     
    }
    Variables variables = new Variables();
    System.out.println(variables.instanceVariable);
    System.out.println(TEXT);
   
  }
 
   public String instanceVariable;
  ┗━━━━━━━━━━━━━━━┛
   public Variables()
   {
      instanceVariable = "Instance variable test.";
   }
}

1. Een in een methode gedeclareerde variabele bestaat (is zichtbaar) vanaf het begin van de declaratie tot het einde van de methode.

2. Een in een codeblok gedeclareerde variabele bestaat tot het einde van het codeblok.

3. De parameters van een methode bestaan ​​overal binnen de methode.

4. Variabelen in een object bestaan ​​gedurende de gehele levensduur van het object dat ze bevat. Hun zichtbaarheid wordt ook bepaald door speciale toegangsmodifiers: openbaar en privé .

5. Statische (klasse)variabelen bestaan ​​de hele tijd dat het programma draait. Hun zichtbaarheid wordt ook bepaald door toegangsmodificatoren.

"Ik hou van foto's. Ze helpen om alles duidelijk te maken."

'Brave jongen, Amigo. Ik heb altijd geweten dat je een slimme vent was.'

"Ik ga je ook vertellen over ' toegangsmodificatoren '. Wees niet bang. Er is niets ingewikkelds aan. Hier zie je de woorden openbaar en privé ."

'Ik ben niet bang. Mijn oog trilt alleen.'

"Ik geloof je. Je kunt beheren hoe de methoden en variabelen van een klasse worden benaderd door (of zichtbaar zijn voor) andere klassen. Je kunt slechts één toegangsmodificator toewijzen aan elke methode of variabele.

1. modifier voor openbare toegang.

U kunt overal in het programma een variabele, methode of klasse gebruiken die is gemarkeerd met de public modifier. Dit is het hoogste toegangsniveau – er zijn hier geen beperkingen.

2. modifier voor privétoegang .

U kunt een variabele of een methode gemarkeerd met de private modifier alleen gebruiken vanuit de klasse waarin deze is gedeclareerd. Voor alle andere klassen is de gemarkeerde methode of variabele onzichtbaar, net alsof deze niet bestaat. Dit is het hoogste niveau van geslotenheid - alleen toegang binnen zijn eigen klasse.

3. Geen modifier.

Als een variabele of een methode niet is gemarkeerd met een modifier, wordt deze beschouwd als gemarkeerd met een 'standaard' toegangsmodifier. Dergelijke variabelen en methoden zijn zichtbaar voor alle klassen in het pakket waarin ze zijn gedeclareerd. En alleen voor hen. Dit toegangsniveau wordt soms ' pakket-privé' -toegang genoemd, aangezien de toegang tot de variabelen en methoden open is voor het hele pakket dat hun klasse bevat.

Hier is een tabel die samenvat wat we hebben besproken:"

Modificaties Toegang vanaf…
Eigen klasse Eigen pakket Elke klasse
privaat Ja Nee Nee
Geen modifier ( pakket-privé ) Ja Ja Nee
openbaar Ja Ja Ja