"Hei til favorittstudenten min. Nå skal jeg fortelle deg om synligheten til variabler."

"Hæ? Kan variabler være usynlige?"

"Nei. En variabels 'synlighet', eller omfang, betyr stedene i koden der du kan referere til den variabelen. Du kan bruke noen variabler overalt i programmet, men andre kan bare brukes innenfor deres klasse, og andre igjen – bare innenfor én metode. "

"Du kan for eksempel ikke bruke en variabel før den er deklarert."

"Det gir mening."

"Her er et par eksempler:"


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. En variabel deklarert i en metode eksisterer (er synlig) fra starten av dens erklæring til slutten av metoden.

2. En variabel deklarert i en kodeblokk eksisterer til slutten av kodeblokken.

3. En metodes parametere finnes overalt i metoden.

4. Variabler i et objekt eksisterer i hele levetiden til objektet som inneholder dem. Synligheten deres er også definert av spesielle tilgangsmodifikatorer: offentlig og privat .

5. Statiske (klasse) variabler eksisterer hele tiden programmet kjører. Synligheten deres er også definert av tilgangsmodifikatorer.

"Jeg elsker bilder. De bidrar til å gjøre alt klart."

"Flink gutt, Amigo. Jeg har alltid visst at du var en smart fyr."

"Jeg skal også fortelle deg om ' adgangsmodifikatorer '. Ikke vær redd. Det er ikke noe komplisert med dem. Her kan du se ordene offentlig og privat ."

"Jeg er ikke redd. Det er bare det at øyet mitt ryker."

"Jeg tror deg. Du kan administrere hvordan metodene og variablene til en klasse får tilgang til (eller er synlige for) andre klasser. Du kan bare tilordne én tilgangsmodifikator til hver metode eller variabel.

1. modifikator for offentlig tilgang.

Du kan bruke en variabel, metode eller klasse merket med den offentlige modifikatoren fra hvor som helst i programmet. Dette er det høyeste tilgangsnivået – det er ingen begrensninger her.

2. modifikator for privat tilgang.

Du kan bruke en variabel eller en metode merket med den private modifikatoren bare fra klassen den er deklarert i. For alle andre klasser vil den merkede metoden eller variabelen være usynlig, akkurat som om den ikke eksisterer. Dette er det høyeste nivået av lukkethet – tilgang kun innenfor sin egen klasse.

3. Ingen modifikator.

Hvis en variabel eller en metode ikke er merket med noen modifikator, anses den for å være merket med en "standard" tilgangsmodifikator. Slike variabler og metoder er synlige for alle klasser i pakken de er deklarert i. Og kun for dem. Dette tilgangsnivået kalles noen ganger ' pakke-privat ' tilgang, siden tilgang til variablene og metodene er åpen for hele pakken som inneholder klassen deres.

Her er en tabell som oppsummerer det vi har diskutert:"

Modifikatorer Tilgang fra…
Egen klasse Egen pakke Hvilken som helst klasse
privat Ja Nei Nei
Ingen modifikator ( pakke-privat ) Ja Ja Nei
offentlig Ja Ja Ja