Método Java estático, variável e bloco com exemplo

A estática pode ser:

  1. Variáveis ​​Estáticas
  2. Métodos estáticos
  3. 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?

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?

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 'this' 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

Passo 1) Copie o código a seguir em um editor

public class Demo{ public static void main(String args[]){ Student s1 = new Student(); s1.showData(); Student s2 = new Student(); s2.showData(); //Student.b++; //s1.showData(); } } class Student { int a; //initialized to zero static int b; //initialized to zero only when class is loaded not for each object created. Student(){ //Constructor incrementing static variable b b++; } public void showData(){ System.out.println('Value of a = '+a); System.out.println('Value of b = '+b); } //public static void increment(){ //a++; //} }

Passo 2) Salve e compile o código. Execute o código como, java Demo .

Etapa 3) 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.


Passo 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 = 0 Value of b = 1 Value of a = 0 Value of b = 2 Value of a = 0 Value of b = 3 
Etapa 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 ' para 'do método de classe estática java' incremento '.

O que é bloco estático em Java?

o bloco estático é um bloco de instruções dentro de uma classe Java que será executada quando uma classe for carregada pela primeira vez na JVM. UMA 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('Value of a = ' + a); System.out.println('Value of b = ' + b); } }

você obterá a seguinte saída do programa.

 Value of a = 10 Value of b = 20 
Este código é editável. Clique em Executar para Compilar + Executar