quinta-feira, 14 de agosto de 2008

Java tem ponteiros!?

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:

Seguidores

Total de visualizações

Tecnologia do Blogger.
Evandro Santos © 2016 Suporte Blogger Templates