Existe uma diferença entre variáveis ​​de instância e variáveis ​​locais em java?

Em termos simples…

Variável local: - Variáveis ​​declaradas dentro de um método. Essa variável seria definida / inicializada dentro do método e os objetos serão destruídos assim que sairmos do método.

Variável de instância: - que são definidas em uma classe que ganha vida quando instanciada em um objeto. Enquanto o objeto estiver vivo, as variáveis ​​também estariam.

Sim existe. Primeiro de tudo, existem três tipos de variáveis ​​em Java.

1) Variável local.

2) Variável de Instância.

3) Classe / variável estática.

Variável de Instância são aquelas que são declaradas fora do método e não têm nenhuma limitação.Você pode declarar esses métodos globalmente e usar localmente. Eles têm o especificador de acesso usado para eles. Os valores padrão da variável de instância são predefinidos.

Considerando que variável local é aquela que é definida dentro de um método e tem um bloco específico dentro do qual é legalizado. Você precisa definir um valor padrão para cada variável local.

Em Java, temos 3 tipos de variáveis.

  • Variáveis ​​de instância (variáveis ​​não estáticas)
  • Variáveis ​​estáticas
  • Variáveis ​​locais

Instância

variáveis

:

  • Variáveis ​​de instância são variáveis ​​não estáticas que serão definidas dentro da classe, mas fora do método.
  • Não é obrigatório inicializar as variáveis ​​da instância. Se não os inicializarmos, os valores padrão serão aplicáveis ​​com base no respectivo tipo de dados.

Ex: para int o valor padrão seria zero, para o dobro seria 0,0 e para booleano seria falso etc.

3. Geralmente, as variáveis ​​de instância serão inicializadas usando construtores. Também podemos inicializá-los usando o objeto.

Ex: objectName. nome da variável = valor;

4. O tempo de vida dessas variáveis ​​será até a conclusão da execução do programa.

Local

Variáveis

:

  • Variáveis ​​locais são as variáveis ​​que serão definidas dentro de um método ou bloco.
  • Os parâmetros do método também são considerados como variáveis ​​locais.
  • Diferentemente das variáveis ​​de instância, os valores padrão não podem ser aplicáveis ​​a variáveis ​​locais. Portanto, é obrigatório inicializá-los. Caso contrário, obteremos um erro.
  • O tempo de vida das variáveis ​​locais será encerrado assim que o método ou a execução do bloco em particular for concluída.

Ryan Alder cobre muito bem. Examine o conceito de "escopo" em Java. Eu apenas pesquisei no Google e aqui está uma boa explicação…

Escopo de variáveis ​​em Java - GeeksforGeeks

A idéia de "Variáveis ​​de escopo" existe em todas as linguagens de programação modernas. Em Java, quando uma variável gerenciada fica fora do escopo, coisas como coleta de lixo acontecem, a menos que a variável seja mantida no escopo por outra coisa, como um recurso dependente da plataforma ou uma referência de outro lugar.

É um tópico rico, com muito o que aprender, mas esse link deve ajudá-lo a começar.

Existem diferenças significativas entre as 2. variáveis ​​da instância:

  • Definido no nível da classe e existir enquanto a instância (da qual eles fazem parte) existir.
  • São acessíveis a partir de qualquer método de instância.
  • Pode ser acessado de fora da definição de classe usando a sintaxe instance.variable. Isto é, a menos que sejam particulares.

As variáveis ​​locais são:

  • Definido dentro do escopo de um método e existe apenas durante a execução desse método.
  • São acessíveis apenas do ponto da declaração até o final do método.

A

variável de instância

é declarado em qualquer lugar dentro de uma classe, fora de qualquer método. É visível para todos os métodos dessa classe. Ele pode ser acessado de fora dessa classe. É criado quando uma nova instância dessa classe é criada e destruída quando não há mais uma referência a essa instância. Se nenhum valor é atribuído a ele, ele possui um valor padrão (por exemplo, 0, falso, nulo).

UMA

variável local

declarado é declarado dentro de um método / bloco antes de serem chamados e é visível apenas nesse método / bloco. Não pode ser acessado fora desse método / bloco. É criado quando esse método é chamado e destruído quando esse método é encerrado. Um valor deve ser atribuído a ele ou ao compilador enquanto gera um erro.

  1. classe Foo {int instanceVar; Foo () {...} barra nula () {int localVar = 0; }} classe Bar {Foo obj = new Foo; obj.instanceVar = 1;}