"Ciao al mio studente preferito. Adesso ti parlerò della visibilità delle variabili."

"Eh? Le variabili possono essere invisibili?"

"No. La 'visibilità' di una variabile, o ambito, indica i punti nel codice in cui puoi fare riferimento a quella variabile. Puoi usare alcune variabili ovunque nel programma, ma altre possono essere usate solo all'interno della loro classe, e altre ancora - solo all'interno di un metodo " .

"Ad esempio, non puoi usare una variabile prima che sia stata dichiarata."

"Ciò ha senso."

"Qui ci sono un paio di esempi:"


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. Una variabile dichiarata in un metodo esiste (è visibile) dall'inizio della sua dichiarazione alla fine del metodo.

2. Una variabile dichiarata in un blocco di codice esiste fino alla fine del blocco di codice.

3. I parametri di un metodo esistono ovunque all'interno del metodo.

4. Le variabili in un oggetto esistono durante l'intero ciclo di vita dell'oggetto che le contiene. La loro visibilità è definita anche da speciali modificatori di accesso: public e private .

5. Le variabili statiche (di classe) esistono per tutto il tempo in cui il programma è in esecuzione. La loro visibilità è definita anche dai modificatori di accesso.

"Adoro le immagini. Aiutano a chiarire tutto."

"Bravo ragazzo, Amigo. Ho sempre saputo che eri un ragazzo intelligente."

"Ti parlerò anche dei ' modificatori di accesso '. Non aver paura. Non c'è niente di complicato in loro. Qui puoi vedere le parole pubblico e privato ."

"Non ho paura. È solo che mi tremano gli occhi."

"Ti credo. Puoi gestire il modo in cui i metodi e le variabili di una classe sono accessibili da (o visibili a) altre classi. Puoi assegnare un solo modificatore di accesso a ciascun metodo o variabile.

1. modificatore di accesso pubblico .

È possibile utilizzare una variabile, un metodo o una classe contrassegnati con il modificatore public da qualsiasi punto del programma. Questo è il più alto livello di accesso – non ci sono limitazioni qui.

2. modificatore di accesso privato .

È possibile utilizzare una variabile o un metodo contrassegnato con il modificatore private solo dalla classe in cui è dichiarato. Per tutte le altre classi, il metodo o la variabile contrassegnati saranno invisibili, proprio come se non esistessero. Questo è il più alto livello di chiusura: accesso solo all'interno della propria classe.

3. Nessun modificatore.

Se una variabile o un metodo non è contrassegnato con alcun modificatore, viene considerato contrassegnato con un modificatore di accesso "predefinito". Tali variabili e metodi sono visibili a tutte le classi nel pacchetto in cui sono dichiarate. E solo a loro. Questo livello di accesso è talvolta chiamato accesso ' package-private ', poiché l'accesso alle variabili e ai metodi è aperto per l'intero pacchetto che contiene la loro classe.

Ecco una tabella che riassume ciò di cui abbiamo discusso:"

Modificatori Accesso da…
Classe propria Pacchetto proprio Qualsiasi classe
privato NO NO
Nessun modificatore ( package-private ) NO
pubblico