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

Podemos declarar variáveis estáticas em um método Java?

Arquivo estático/As variáveis pertencem a essa classe e serão carregadas para a memória juntamente com ela. Você pode chamá-las sem criar um objeto (use o nome da classe como referência). Há apenas uma cópia do campo estático disponível em toda a classe, ou seja, o valor do campo estático é o mesmo em todos os objetos. Você pode definir um campo estático usando a palavra-chave static.

Exemplo

public class Sample{
   static int num = 50;
   public void demo(){
      System.out.println("Valor de num no método demo ");+ Sample.num);
   }
   public static void main(String args[]){
      System.out.println("Valor de num no método main ");+ Sample.num);
      new Sample().demo();
   }
}

Resultado da saída

Valor de num no método main 50
Valor de num no método demo 50

Variável estática no método

As variáveis que uma método possui são variáveis locais, cujo escopo está dentro do método e são destruídas após a execução do método. Isso significa que você não pode usar fora do método atual uma variável que está dentro da classe/A definição de uma variável estática entra em conflito com uma variável local. Portanto, não faz sentido declarar uma variável estática dentro de um método, e se ainda assim tentar fazer isso, será gerado um erro de compilação.

Exemplo

No programa Java a seguir, tentamos declarar uma variável estática dentro de um método.

import java.io.IOException;
import java.util.Scanner;
public class Sample {
   static int num;
   public void sampleMethod(Scanner sc){
      static int num = 50;
   }
   public static void main(String args[]) throws IOException {
      static int num = 50;
   }
}

Erro de compilação

Se você tentar executar o programa acima, ocorrerá o seguinte erro-

Sample.java:6: erro: início ilegal da expressão
   static int num = 50;
  ^
Sample.java:9: erro: início ilegal da expressão
   static int num = 50;
^
2 erros