Algumas expressoes sobre Variaveis

5 respostas
gleysonso

Olá, constantemente vejo algumas expressoes em JAVA sobre tipo de variaveis como por exemplo:

Variaveis de instacia, variaveis de referencia, Variaveis locais entre outras.

Gostaria de saber quando utlizar cada expressao e se existe mais alguma

Grato!!!

5 Respostas

ViniGodoy

ahem… antes de tudo, você sabe o que é escopo de uma variável?

gleysonso

Vinicius,
sobre escopo seria o tempo de vida de uma variavel, se é dentro de metodo ou a nivel de classe ?

Valeu ai

L

Então você sabe qual expressão usar!

ViniGodoy

Sim, escopo é o tempo de vida. E as designações que você apontou se referem ao escopo.

Numa classe, temos vários escopos possíveis:

public class UmaClasse
   public static int global; //Escopo global

   private static int classe; //Escopo da classe

   private int instancia; //Escopo da instancia

   public void metodo() {
        int local; //Escopo local
   }
}

Note que a primeira variável pode ser usada em qualquer lugar, seja nessa classe ou em outras. Se for um objeto, nunca será coletado (a menos que seja explicitamente setado como null). É o que chamamos de variável global. Usar variáveis assim é considerado uma péssima prática de programação.

A segunda variável, como a primeira, é uma variavel estática, ou variável de classe. Note que ela é muito similar a global, mas só poderá ser usada dentro da classe onde foi declarada, graças ao modificador private. Outros modificadores (como protected) também podem ser admitidos, embora o java também torne estenda o escopo para todo o pacote (do contrário do que faz outras linguagens, como o C++ e o C#).

Em ambos os casos acima, não interessa em que objeto da classe você está. Existe apenas uma única variável. Não é o caso da terceira variável. Em cada objeto, haverá um valor diferente para ela, portanto, ela está associada a instância, e daí a designação "variável de instância".

Finalmente, temos a variável local. Ela está no menor escopo possível, no caso, o de um método. É uma boa prática de programação tornar as variáveis o mais locais possível, deixando sua declaração sempre para o ponto mais próximo onde serão usadas.

Existem também designações referentes a forma como a variável é armazenada:
variável de instância e variável static

A forma como os seus dados estão agrupados (geralmente definido pelo tipo de dado):
variável signed e unsigned (não é o caso do java), variável strictfp (caso do java), variável ascii, unicode

Ou mesmo, a forma como a VM gerencia o cache da variável:
variável volátil, variável não-volátil

E também, como a variável refencia seus dados:
ponteiro, referência, variável de tipo primitivo, variável de tipo composto (os dois últimos também chamados de variáveis "por valor", referindo-se a esse conceito na passagem de parâmetro, onde é mais usado).

gleysonso

Vinicius,
Se eu tivesse contato com JAMES GOSLING, cara pode ter certeza que vc seria terceira pessoa que eu indicaria a trabalhar na SUN, isso porque tenho 2 amigos iguais a vc.

Que a FORÇA permaneça em vc!!!

Obrigado!!

gleysonso@hotmail

Criado 4 de agosto de 2009
Ultima resposta 4 de ago. de 2009
Respostas 5
Participantes 3