Diferença Variável de Instância Variável e Variável Local

Anonim

Variável de instância versus variável local

Uma variável de instância é um tipo de variável que está 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 está limitado a linguagens de programação orientadas a objetos. É uma variável que pode ser avaliada apenas dentro de um determinado bloco de código (por exemplo, função, bloco de loop, etc.) em que está definido. Devido a esta razão, as variáveis ​​locais têm um alcance 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 membros ou variáveis ​​de campo. As variáveis ​​de instância são declaradas sem usar a palavra-chave estática em Java. Os valores armazenados nas variáveis ​​de instância são exclusivos de cada objeto (cada objeto possui uma cópia separada) e os valores armazenados neles 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 ao vivo. 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, as variáveis ​​de instância são declaradas dentro de classes e métodos externos. Normalmente, as variáveis ​​de instância são declaradas como privadas, de modo que só podem ser acessadas dentro da classe que é declarada.

O que é uma variável local?

Variáveis ​​locais são variáveis ​​com um escopo local e são declaradas dentro de um bloco de código específico. As variáveis ​​locais podem ser vistas como variáveis ​​que são usadas por um método para armazenar seu estado temporário. O escopo de uma variável local é determinado usando a localização que a variável é declarada, e palavras-chave especiais não são usadas para este propósito. Normalmente, o acesso a uma variável local é limitado dentro do bloco de código que é declarado (isto é, entre as chaves de abertura e de fechamento desse bloco de código). As variáveis ​​locais geralmente são armazenadas na pilha de chamadas. Isso permitiria chamadas de função recursiva para manter suas próprias cópias das variáveis ​​locais a 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 saem da pilha de chamadas, além de destruir as variáveis ​​locais que foram armazenadas.

Qual a diferença entre variável de instância e variável local?

As variáveis ​​de instância são declaradas dentro das classes fora dos métodos e armazenam o estado de um objeto, enquanto as 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 é ao vivo, desde que o objeto que contém essa variável seja ao vivo, enquanto uma variável local estiver ao vivo durante a execução desse bloco de método / código. Uma variável de instância (que é declarada pública) pode ser acessada dentro da classe, enquanto que uma variável local só pode ser acessada dentro do bloco de código que é declarado. O uso de variáveis ​​de instância é limitado apenas a programação orientada a objetos, enquanto que as variáveis ​​locais não possuem essa limitação.