Arquivo

Posts Tagged ‘Automatic’

Variáveis Locais (Automatic/Stack/Method)

Variáveis locais são aquelas declaradas dentro de um método. Isso significa que a variável não é apenas inicializada dentro do método, mas também declarada dentro dele. Assim como a variável local inicia a sua vida dentro do método, ela também é destruída quando o método finaliza. As variáveis locais ficam sempre na pilha, e não no heap. Embora o valor da variável possa ser passado para, digamos, outro método que não armazene o valor em uma variável de instância propriamente dita só vive dentro do escopo do método.


class Teste{

    public void login(){

    int count = 10;

}

    public void loginTest(int i){

        count = i;	//Não vai compilar! Não é possível acessar

                        //count de fora do método login()

    }

}

É possível declarar uma variável local como mesmo nome que uma variável de instância. Isso é conhecido como sombreamento, como o seguinte código demonstra:


class Teste{

    int count = 9;	//declara uma variável de instância

    public void login(){

        int count = 10; //Declara uma variável loca chamada de count

        System.out.println( count );

    }

    public void count(){

        System.out.println( count );

    }

    public static void main(String[] args){

        new Teste().login();

        new Teste().count();

    }
}

O código acima produz a seguinte saída:

10
9