Diferença entre variável de instância e variável local

Variável de Instância vs Variável Local

Uma variável de instância é um tipo de variável presente na programação orientada a objetos. É uma variável que é definida em uma classe e cada objeto dessa classe possui uma cópia separada dessa variável. Por outro lado, o uso de variáveis ​​locais não se limita às linguagens de programação orientadas a objetos. É uma variável que pode ser avaliada apenas dentro de um bloco de código específico (por exemplo, função, bloco de loop, etc.) em que está definido. Por esse motivo, diz-se que as variáveis ​​locais têm um escopo local.

O que é uma variável de instância?

As variáveis ​​de instância são usadas na programação orientada a objetos para armazenar o estado de cada objeto em uma classe. Eles também são conhecidos como variáveis ​​de membro ou variáveis ​​de campo. Variáveis ​​de instância são declaradas sem o uso da palavra-chave estática em Java. Os valores armazenados nas variáveis ​​de instância são exclusivos para cada objeto (cada objeto possui uma cópia separada) e os valores armazenados nelas representam o estado desse objeto. O espaço para uma variável de instância é alocado no heap, quando esse objeto é alocado no heap. Portanto, as variáveis ​​de instância são mantidas na memória enquanto o objeto estiver ativo. Por exemplo, a cor de um carro é independente da cor de outro carro. Portanto, a cor de um objeto de carro pode ser armazenada em uma variável de instância. Na prática, variáveis ​​de instância são declaradas dentro de classes e métodos externos. Geralmente, as variáveis ​​de instância são declaradas como privadas para que elas possam ser acessadas somente dentro da classe em que é declarada..

O que é uma variável local?

Variáveis ​​locais são variáveis ​​com escopo local e são declaradas em um bloco de código específico. Variáveis ​​locais podem ser vistas como variáveis ​​usadas por um método para armazenar seu estado temporário. O escopo de uma variável local é determinado usando o local em que a variável é declarada e palavras-chave especiais não são usadas para esse fim. Normalmente, o acesso a uma variável local é limitado dentro do bloco de código declarado (ou seja, entre as chaves de abertura e fechamento desse bloco de código). Variáveis ​​locais são normalmente armazenadas na pilha de chamadas. Isso permitiria que chamadas de função recursivas mantivessem suas próprias cópias das variáveis ​​locais para serem armazenadas em espaços de endereço de memória separados. Quando o método termina sua execução, as informações sobre esse método são exibidas na pilha de chamadas, destruindo também as variáveis ​​locais que foram armazenadas.

Qual é a diferença entre Variável de Instância e Variável Local?

Variáveis ​​de instância são declaradas dentro de classes fora dos métodos e armazenam o estado de um objeto, enquanto variáveis ​​locais são declaradas dentro de blocos de código e são usadas para armazenar o estado de um método. Uma variável de instância permanece ativa enquanto o objeto que contém essa variável estiver ativa, enquanto uma variável local estiver ativa durante a execução desse método / bloco de código. Uma variável de instância (que é declarada pública) pode ser acessada dentro da classe, enquanto uma variável local pode ser acessada apenas dentro do bloco de código que é declarado. O uso de variáveis ​​de instância é limitado apenas à programação orientada a objetos, enquanto as variáveis ​​locais não têm essa limitação..