"Olá, meu aluno favorito. Agora vou falar sobre a visibilidade das variáveis."

"Huh? As variáveis ​​podem ser invisíveis?"

"Não. A 'visibilidade', ou escopo, de uma variável significa os locais no código onde você pode se referir a essa variável. Você pode usar algumas variáveis ​​em qualquer lugar do programa, mas outras só podem ser usadas dentro de sua classe, e ainda outras - apenas dentro de um método. "

"Por exemplo, você não pode usar uma variável antes de ser declarada."

"Isso faz sentido."

"Aqui estão alguns exemplos:"


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. Uma variável declarada em um método existe (é visível) desde o início de sua declaração até o final do método.

2. Uma variável declarada em um bloco de código existe até o final do bloco de código.

3. Os parâmetros de um método existem em todos os lugares dentro do método.

4. As variáveis ​​em um objeto existem durante todo o tempo de vida do objeto que as contém. Sua visibilidade também é definida por modificadores de acesso especiais: public e private .

5. As variáveis ​​estáticas (classe) existem durante todo o tempo em que o programa está sendo executado. Sua visibilidade também é definida por modificadores de acesso.

"Adoro fotos. Elas ajudam a esclarecer tudo."

"Bom menino, Amigo. Sempre soube que você era um cara esperto."

"Também vou falar sobre ' modificadores de acesso '. Não tenha medo. Não há nada de complicado neles. Aqui você pode ver as palavras público e privado ."

"Não estou com medo. É só que meu olho está tremendo."

"Eu acredito em você. Você pode gerenciar como os métodos e variáveis ​​de uma classe são acessados ​​por (ou visíveis para) outras classes. Você pode atribuir apenas um modificador de acesso a cada método ou variável.

1. modificador de acesso público .

Você pode usar uma variável, método ou classe marcada com o modificador public de qualquer lugar do programa. Este é o nível mais alto de acesso – não há limitações aqui.

2. modificador de acesso privado .

Você pode usar uma variável ou um método marcado com o modificador private somente da classe em que está declarado. Para todas as outras classes, o método ou variável marcado será invisível, como se não existisse. Este é o nível mais alto de fechamento – acesso apenas dentro de sua própria classe.

3. Nenhum modificador.

Se uma variável ou um método não estiver marcado com nenhum modificador, será considerado marcado com um modificador de acesso 'padrão'. Tais variáveis ​​e métodos são visíveis para todas as classes no pacote em que são declaradas. E somente para elas. Esse nível de acesso às vezes é chamado de acesso ' privado do pacote ', pois o acesso às variáveis ​​e métodos é aberto para todo o pacote que contém sua classe.

Aqui está uma tabela que resume o que discutimos:"

Modificadores Acesso de…
Própria classe Pacote próprio qualquer classe
privado Sim Não Não
Nenhum modificador ( pacote-privado ) Sim Sim Não
público Sim Sim Sim