A estática pode ser:
- Variáveis Estáticas
- Métodos estáticos
- Blocos de código estáticos.
Vamos examinar as variáveis estáticas e os métodos estáticos primeiro.
O que é variável estática em Java?
A variável estática em Java é uma variável que pertence à classe e inicializada apenas uma vez no início da execução. É uma variável que pertence à classe e não ao objeto (instância). Variáveis estáticas são inicializadas apenas uma vez, no início da execução. Essas variáveis serão inicializadas primeiro, antes da inicialização de quaisquer variáveis de instância.
- Uma única cópia a ser compartilhada por todas as instâncias da classe
- Uma variável estática pode ser acessada diretamente pelo nome da classe e não precisa de nenhum objeto
Sintaxe:
< class-name>.
O que é o método estático em Java?
O método estático em Java é um método que pertence à classe e não ao objeto. Um método estático pode acessar apenas dados estáticos. É um método que pertence à classe e não ao objeto (instância). Um método estático pode acessar apenas dados estáticos. Ele não pode acessar dados não estáticos (variáveis de instância).
- Um método estático pode chamar apenas outros métodos estáticos e não pode chamar um método não estático a partir dele.
- Um método estático pode ser acessado diretamente pelo nome da classe e não precisa de nenhum objeto
- Um método estático não pode se referir a "isto" ou "super" palavras-chave de forma alguma
Sintaxe:
< class-name>.
Observação: o método principal é estático, pois deve estar acessível para que um aplicativo seja executado antes que qualquer instanciação ocorra.
Vamos aprender as nuances das palavras-chave estáticas fazendo alguns exercícios!
Exemplo: como chamar variáveis e métodos estáticos
Etapa 1) Copie o seguinte código em um editor
public class Demo {public static void main (String args []) {Aluno s1 = novo Aluno ();s1.showData ();Aluno s2 = novo Aluno ();s2.showData ();//Student.b++;//s1.showData ();}}class Student {int a; // inicializado em zerostatic int b; // inicializado em zero apenas quando a classe é carregada, não para cada objeto criado.Aluna(){// Construtor incrementando a variável estática bb ++;}public void showData () {System.out.println ("Valor de a =" + a);System.out.println ("Valor de b =" + b);}// public static void increment () {// a ++;//}}
Etapa 2) Salvar e compilar o código. Execute o código como java Demo .
Etapa 3) A saída esperada é mostrada abaixo
O diagrama a seguir mostra como as variáveis e objetos de referência são criados e as variáveis estáticas são acessadas pelas diferentes instâncias.
Etapa 4) É possível acessar uma variável estática de fora da classe usando a sintaxe ClassName.Variable_Name . Remova o comentário das linhas 7 e 8. Salvar, compilar e executar. Observe a saída.
Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value of b = 3Etapa 5) Descomente as linhas 25,26 e 27. Salvar, compilar e executar.
error: non-static variable a cannot be referenced from a static context a++;
Etapa 6) Erro =? Isso ocorre porque não é possível acessar a variável de instância " a " do método de classe estática java " incremento ".
O que é bloco estático em Java?
O bloco estático é um bloco de instrução dentro de uma classe Java que será executado quando uma classe for carregada pela primeira vez na JVM. Um bloco estático ajuda a inicializar os membros de dados estáticos , assim como os construtores ajudam a inicializar os membros da instância.
class Test{static {//Code goes here}}
O programa a seguir é o exemplo de bloco estático java.
Exemplo: Como acessar o bloco estático
public class Demo {static int a;static int b;static {a = 10;b = 20;}public static void main (String args []) {System.out.println ("Valor de a =" + a);System.out.println ("Valor de b =" + b);}}
você obterá a seguinte saída do programa.
Value of a = 10Value of b = 20