Em C é feita de
forma explícita esta passagem........
Referência em C é um
endereço de memória que guarda o ponteiro para a área de memória da
variável.....Desta forma se você atribuir um outro ponteiro
para este endereço
de memória, aquela referência inicial foi perdida e você não recupera mais. Em
Java isso não acontece pois é passado uma cópia
da referência, o
original fica protegido.
Resumo
Em C se passa a
referência explícita, mudou a referência perdeu a referência
original....
Em Java se passa uma
cópia da referência , mudou a referência, sem problemas, o original está
mantido.....(É por isso que Java não trabalha com ponteiro
!!)
Obs: Pelo que vimos
na discussão a Sun quer deixar claro que tudo em Java é passado por
valor........Para tipos primitivos uma cópia da variável e para
classes
é passado uma cópia
da referência, o que é sensato, pois imagine o desperdício de memória que seria
se toda chamada com parâmetros a VM alocasse
memória para o novo
objeto...
Mário
Obs: C também possui
passagem por valor...
Ex de declarações de
funções em C
void minhaFunc(int
x); // Por valor
void minhaFunc(int
*x); // Por referência explícita
|
- RE: [java-list] Duvida sobre atribuicao de objet... Jorge Martins
- Re: [java-list] Duvida sobre atribuicao de objet... Gangrel
- Re: [java-list] Duvida sobre atribuicao de ... Jonatan Schroeder
- Re: [java-list] Duvida sobre atribuicao de ... Samuel Yuen
- RE: [java-list] Duvida sobre atribuicao de objet... Denard Costa Soares
- RE: [java-list] Duvida sobre atribuicao de ... Henrique Viecili
- Re: [java-list] Duvida sobre atribuicao... Adriano Andrulis
- Re: [java-list] Duvida sobre atribu... Hélio Brandão
- RE: [java-list] Duvida sobre atribuicao de objet... Edson Barbosa
- Re: [java-list] Duvida sobre atribuicao de ... Carlos Eduardo Carvalho
- RE: [java-list] Duvida sobre atribuicao... Mário Roberto Porto Filho
- RE: [java-list] Duvida sobre atribuicao de objet... Denard Costa Soares