Sobes.tech
Junior — Middle

Qual é a diferença entre os campos de uma classe e as variáveis locais dentro dos métodos em Java?

sobes.tech IA

Resposta da IA

Os campos de classe (variáveis de instância ou campos estáticos) e variáveis locais dentro de métodos em Java diferem em escopo, tempo de vida e local de armazenamento:

  • Campos de classe:

    • Declarados dentro da classe, mas fora dos métodos.
    • São armazenados no objeto (se não forem estáticos) ou na área da classe (se forem estáticos).
    • Mantêm o valor entre chamadas de métodos.
    • São acessíveis a partir de diferentes métodos da classe (dependendo do nível de acesso).
  • Variáveis locais:

    • Declaradas dentro de um método.
    • Existam apenas durante a execução do método.
    • São armazenadas na pilha de chamadas.
    • Não são acessíveis fora do método em que são declaradas.

Exemplo:

public class Example {
    int field = 10; // campo de classe

    public void method() {
        int localVar = 5; // variável local
        System.out.println(field + localVar);
    }
}

Aqui, field mantém o estado do objeto, enquanto localVar existe apenas durante a execução do método method.