GeeksforGeeks

Prerequisito : variáveis estáticas, palavra-chave final

Variável estática: Quando o valor de uma variável não é variado, então não é uma boa escolha ir por exemplo, variável estática. Nesse momento podemos adicionar um modificador estático a essa variável. Sempre que declaramos variável como estática, então no nível de classe é criada uma única variável que é compartilhada com os objetos. Qualquer mudança nessa variável estática reflete para as outras operações dos objetos. Se não inicializarmos uma variável estática, então por padrão a JVM irá fornecer um valor padrão para a variável estática.

Mas quando declaramos uma variável estática com modificador final então devemos cuidar das seguintes convenções:

  • Declarar variáveis apenas como estáticas pode levar à alteração de seus valores por uma ou mais instâncias de uma classe na qual ela é declarada.
  • Declará-las como finais estáticas ajudará a criar um CONSTANT. Existe apenas uma cópia da variável que não pode ser reinicializada.

Pontos Importantes sobre a variável estática final:

  1. Inicialização da variável Obrigatória : Se a variável estática declarada como final, então temos que realizar a inicialização explicitamente se estamos usando ou não e JVM não fornecerá nenhum valor padrão para a variável estática final.

    class Test {
    final static int x;
    public static void main(String args)

    {
    }
    }

    
    

    
    

    Saída:

    error: variable x not initialized in the default constructor
  2. Inicialização antes do carregamento da classe : Para a variável estática final, é obrigatório que realizemos a inicialização antes da conclusão do carregamento da classe. Podemos inicializar uma variável estática final no momento da declaração.

    class Test {
    final static int x = 10;
    public static void main(String args)
    {
    System.out.println(x);
    }
    }

    
    

    
    

    Saída:

    10
  3. Inicializar dentro de um bloco estático : Também podemos inicializar uma variável estática final dentro de um bloco estático porque devemos inicializar uma variável estática final antes da classe e sabemos que o bloco estático é executado antes do método main().

    class Test {
    final static int x;
    static
    {
    x = 10;
    }
    public static void main(String args)
    {
    System.out.println(x);
    }
    }

    
    

    
    

    Saída:

    10

Parte dos métodos acima mencionados, se tentarmos inicializar uma variável estática final em qualquer outro lugar, então teremos erro de tempo de compilação.

class Test {
final static int x;
public static void m()
{
x = 10;
}
public static void main(String args)
{
System.out.println(x);
}
}



Saída:

error: cannot assign a value to final variable x

Implementação da variável estática final

class MainClass {
final static String company = "GFG";
String name;
int rollno;
public
static void main(String args)
{
MainClass ob = new MainClass();
ob.company = "Geeksforgeeks";
ob.name = "Bishal";
ob.rollno = 007;
System.out.println(ob.company);
System.out.println(ob.name);
System.out.println(ob.rollno);
}
}



Saída:

error: cannot assign a value to final variable company

Este artigo é contribuído por Bishal Kumar Dubey. Se você gosta de GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo usando contribute.geeksforgeeks.org ou enviar seu artigo pelo correio para [email protected]. Veja o seu artigo que aparece na página principal do GeeksforGeeks e ajude outros Geeks.

Deixe uma resposta

O seu endereço de email não será publicado.