Caro Leonardo

  Voc� est� parcialmente certo. Quando um m�todo
recebe como par�metro um objeto, o VALOR desse
par�metro � uma REFER�NCIA (� esse ponto que causa a
confus�o ...). Isto est� bem claro no link que voc�
mesmo passou. Por�m, seu exemplo n�o � v�lido, pois �
poss�vel SIM alterar atributos de objetos passados
para m�todos.

  O que acontece no seu exemplo � que objetos da
classe String s�o imut�veis. Ent�o, voc� tem um
refer�ncia a um objeto String no m�todo main, e quando
chama o m�todo "teste(str)" o que acontece � que a
vari�vel local do m�todo recebe uma nova refer�ncia a
um objeto String, quando voc� executa a linha 's =
"Valor 2";' (j� que a String recebida n�o pode ser
alterada por ser IMUT�VEL).

  No link que voc� passou h� um exemplo com um objeto
n�o-imut�vel (quase no fim da p�gina), que mostra a
passagem por valor de um refer�ncia funcionando como
deveria ;)

  Conclus�o: Acredito que seja correto pensar que a
passagem de objetos para m�todos ocorre por valor ou
por refer�ncia, dependendo apenas da interpreta��o de
cada um. O importante � entender que o que os m�todos
recebem � uma REFER�NCIA (ou VALOR do tipo REFER�NCIA)
e n�o uma c�pia do objeto original.

  N�o sei se consegui ser claro, se n�o consegui me
fale que eu tento explicar melhor ;)


 --- Leonardo Hartleben Reinehr <[EMAIL PROTECTED]>
escreveu: > 
> Ol�,
> 
> > Ainda acredito que quando a passagem for de
> objetos ser� por refer�ncia 
> > e n�o por valor...
> 
> Em Java, par�metros s�o sempre passados por valor,
> independente se o par�metro � um objeto ou um tipo
> primitivo. Fa�a o teste a seguir que voc� vai
> comprovar isso:
> 
> public class Teste {
>     public static void main(String[] args) {
>         String str = "Valor 1";
>         teste(str);
>         System.out.println(str);
>     }
> 
>     public static void teste(String s) {
>         s = "Valor 2";
>     }
> }
> 
> O texto que ser� impresso � "Valor 1".
> 
> Veja em
>
http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html,
> no item "Pass by Value", que l� explica direitinho o
> que acontece na passagem de par�metros, e porque os
> casos que voc� colocou funcionam. Aqui na lista
> mesmo, h� algum tempo, essa d�vida apareceu e houve
> bastante debate, d� uma olhada no hist�rico.
> 
> Um abra�o,
> Leonardo
> 
> ------------------------------ 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]
>
-------------------------------------------------------------------------
>  

=====
_________________________________
Paulo "gangrel-br" R C Siqueira
Java Developer and Gamer :)
Mogi das Cruzes - SP - Brazil
Contato: (11) 9424-5474

_______________________________________________________________________
Yahoo! Mail
Mais espa�o, mais seguran�a e gratuito: caixa postal de 6MB, antiv�rus, prote��o 
contra spam.
http://br.mail.yahoo.com/

------------------------------ 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] 
-------------------------------------------------------------------------

Responder a