Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Variável estática em Java:o que é bloco e método estático [exemplo]


A estática pode ser:
  1. Variáveis ​​estáticas
  2. Métodos estáticos
  3. Blocos de código estáticos.

Vejamos primeiro as variáveis ​​estáticas e os métodos estáticos.

O que é variável estática em Java?


Variável estática em Java é a 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). As 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 qualquer variável de instância.

Sintaxe:
<class-name>.<variable-name>

O que é 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).

Sintaxe:
<class-name>.<method-name>

Observação: main é 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[]){
     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++;
//}

}

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



Etapa 4) É possível acessar uma variável estática de fora da classe usando a sintaxe ClassName.Variable_Name . Descomente a linha # 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 a linha 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ções dentro de uma classe Java que será executada 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 do 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ê receberá a seguinte saída do programa.
Value of a = 10
Value of b = 20

Java

  1. Palavra-chave final Java
  2. Java instanceof Operator
  3. Classe estática aninhada em Java
  4. Classe anônima Java
  5. Classe Java Singleton
  6. Reflexão Java
  7. Manipulação de Exceções Java
  8. Classe Java ObjectOutputStream
  9. Genéricos Java
  10. Classe de arquivo Java