Na programação em linguagem C um ponteiro é considerado como uma variável que armazena um endereço de memória.
Na programação Java existe dois tipos de variáveis:
As variáveis do tipo primitivo – nesse grupo estão enquadradas as variáveis:
Inteiras: byte, short, int e long;
Ponto flutuante: float e double;
Booleana: boolean;
Caractere: char;
As variáveis de referência a objetos – esse tipo de variável armazena o endereço de memória onde foi instanciado um objeto, ou seja, é um ponteiro para um objeto.
A dúvida se a linguagem Java utiliza, ou não, ponteiros vêm do fato da mesma não possuir um recurso conhecido da Linguagem C: A Aritmética de Ponteiros. Em C, um programador pode acessar livremente a área de memória que quiser, basta informar ao ponteiro o endereço inteiro que representa uma determinada área, alem disso, em C é possível executar um incremento em um ponteiro:
// Código em C
int h;
int *y; // declaração do ponteiro;
h = 30;
y = &h; // atribui endereço de h para o ponteiro y.
printf("Valor em y: %p, Conteúdo de y: %d\n", y, *y);
Em Java, a forma mais comum de obter uma referência para um objeto é através do comando new:
Integer i = new Integer(25);
A exceção mais comum para desenvolvedores Java iniciantes é a java.lang.NullPointerException que é encontrada quando tenta-se utilizar uma variável de referência que não aponta para um objeto.
public class Teste{
public Integer i; // não foi atribuído valor
//o padrão é null
public static void main(String args[ ]) {
Teste t = new Teste();
System.out.println(t.i);
}
}
Lembre-se: Java tem ponteiros. O recurso que Java não tem é aritmética de ponteiros.
0 comentários: