English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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.
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(); } }
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
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
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.-
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); } }
ConstantsExample.java:4: erro: não é possível atribuir valor a uma variável final num num = i; ^ 1 erro
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