Isso é por que ele não li a documentação dos exemplos:
http://developer.java.sun.com/developer/JDCTechTips/2001/tt1009.html

O Que acontece é o sequinte:
O VALOR da referencia é passado e uma CÒPIA deste valor é utilizado no metodo (pontiero indireto no stack aponta para objeto ai existem dois referencias no stack para o objeto, uma dentro do main e uma dentro do metodo f(A arg)) O objeto é o mesmo, mas a referencia é separada. Então o:
f(A arg){ arg.x=10;} altere o objeto para o qual a referencia aponta
mas no
f(A arg){ arg = null;} somente a referencia que é copiada para é alterada, ele não aponta mais para nada mas a referencia dentro do main não é alterado e ainda aponta para o mesmo objeto.
Em C++ vc poderia fazer:
Object a = new Object();
Object b = new Object();
a.x = 5;
b.x=10;
swap(a,b);

swap(Object *a. Object *b){
a ^= b;
b ^= a;
a ^= b;
}

apos executar swap(a, b) (a.x == 10 && b.y == 5) == true, por que não e uma copia da referencia que é passado, mas a propria referencia (que em c é um int).

Em java isso não funciona porque dentro do methodo swap a REFERENCIA não pode ser alterado mas o OBJECT pode.

Sven


Lincolm Ferreira de Aguiar wrote:
00e901c1ae2a$9b848fa0$[EMAIL PROTECTED]">
É Perry, mas se visse o código perceberia que não alterei nenhuma propriedade do objeto que passei para o método. Alterei o objeto
que recebeu o valor do objeto passado. O objeto passado deveria ficar intacto.

Lincolm Ferreira de Aguiar
WebMaster - QueroProgramar
[EMAIL PROTECTED]

www.geocities.com/lincolmf
----- Original Message -----
From: "Perry Werneck" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, February 04, 2002 2:12 PM
Subject: Re: Re: RES: [java-list] Como é feita a passagem de parâmetros em Java?


Quer ter seu próprio endere ço na Internet?
Garanta já o seu e ainda ganhe cinco e-mails personalizados.
DomíniosBOL - http://dominios.bol.com.br





On Mon, 04 Feb 2002 10:56:18 -0200, Lincolm Ferreira de Aguiar wrote:

Ola,

Não tenho que provar nada, apenas digo  que Java usa passagem por valor.

Quando você passa um objeto como parâmetro para um metodo x qualquer e, dentro desse método
uma determinada propriedade desse objeto é alterada essa propriedade mudada é visivel por outros
métodos/objetos externos ao que alterou? Se sim, no meu entender, a passagem foi por referência pois se
houvesse sido passada uma cópia do objeto as alterações não seriam visíveis externamente.

Novamente no meu pobre entender objetos são passados por referência e tipos básicos por valor.






--
Perry Werneck - Membro do Movimento dos Trabalhadores Urbanos Sem BMW.
http://www.os2brasil.com.br/
http://planeta.terra.com.br/informatica/trevize



------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------




------------------------------ LISTA SO UJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------


-- 
"'You guys (at Microsoft) still don't get it,' 
because it's sort of Java with reliability, productivity and security deleted."

					James Gosling

Responder a