English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

O que é uma variável final vazia? O que é uma variável final estática no Java?

Variáveis estáticas-As variáveis estáticas também são chamadas de variáveis de classe. Você pode declarar uma variável estática usando a palavra-chave. Uma vez declarada uma variável estática, há apenas um único exemplo dela na classe, independentemente de quantos objetos forem criados na classe.

public static int num = 39;

Variáveis de instância-Essas variáveis pertencem à instância da classe (objeto). Essas são declaradas dentro da classe, mas fora dos métodos. Essas são inicializadas ao instanciar a classe. Elas podem ser acessadas a partir de qualquer método, construtor ou bloco específico da classe.

Você deve usar o objeto para acessar as variáveis de instância. Isso significa que, para acessar as variáveis de instância, você precisa criar um objeto da classe e, usando esse objeto, você precisa acessar essas variáveis.

final-Após declarar a variável final, você não pode atribuir a ela novamente.

variável vazia

As variáveis finais não inicializadas são chamadas de variáveis finais vazias. Assim como as variáveis de instância, as variáveis finais não serão inicializadas com valores padrão. Portanto,É necessário inicializar as variáveis finais após declará-las..

Mas, se você tentar usar variáveis vazias no código, será gerado um erro de compilação.

Exemplo

No seguinte programa Java, a classe Student contém duas variáveis finais, name e age, e elas não foram inicializadas.

public class Student {
   public final String name;
   public final int age;
   public void display(){
      System.out.println("Nome do Estudante: ")+this.name);
      System.out.println("Idade do Estudante: ")}+this.age);
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

Erro de compilação

Ao compilar, o programa produzirá os seguintes erros.

Student.java:3: erro: variável name não inicializada no construtor padrão
   private final String name;
                        ^
Student.java:4: erro: variável age não inicializada no construtor padrão
   private final int age;
                     ^
2 erros

Solução

Para resolver esse problema, você precisa inicializar as variáveis finais declaradas.-

public class Student {
   public final String name;
   public final int age;
   public Student(){
      this.name = "Raju";
      this.age = 20;
   }
   public void display(){
      System.out.println("Nome do Estudante: ")+this.name );
      System.out.println("Idade do Estudante: ")}+this.age );
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

Resultado de Saída

Nome do Estudante: Raju
Idade do Estudante: 20

Variável estática final vazia

Da mesma forma, se você declarar uma variável estática final sem inicializá-la, ela será tratada como uma variável estática final.

Quando uma variável é declarada como variável estática e final, você pode inicializá-la apenas no bloco estático. Se você tentar inicializá-la em outro lugar, o compilador assumirá que você está tentando reatribuir um valor a ela e gerará um erro de compilação.-

Exemplo

class Data{
   static final int num;
   Data(int i){
      num = i;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("valor da constante: ");+Data.num);
   }
}

Erro de compilação

ConstantsExample.java:4: erro: não é possível atribuir valor a uma variável final num
   num = i;
   ^
1 erro

Exemplo

Portanto, é necessário inicializar a variável estática final no bloco estático.

Para que o programa acima funcione corretamente, você precisa inicializar a variável estática final no bloco estático.-

class Data{
   static final int num;
   static{
      num = 1000;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("valor da constante: ");+Data.num);
   }
}

Resultado de Saída

valor da constante: 1000
Você também pode gostar