De fato eu estava errado, mas consegui com a ajuda do colega Andr� Goddard
Rosa, entender o que acontece.
Quando o objeto v � enviado para o m�todo another, este cria um objeto que
possui apenas um endere�o indicando para o objeto v instanciado no m�todo
amethod, e quando o m�todo another faz v = vh, ele troca o conte�do de
v(another) que indicava para v(amethod) para um endere�o que indica para vh.

BH 28/03/00

Sergio Rubano

----- Original Message -----
From: Rogerio Lacerda <[EMAIL PROTECTED]>
To: Sergio Rubano <[EMAIL PROTECTED]>; Sou Java <[EMAIL PROTECTED]>
Sent: Friday, March 24, 2000 8:01 PM
Subject: Re: ENC: desafio


> na linha 20 ele diz q esse objeto v ( de amethod ) eh igual ao q o another
> criou: com atributo default 10.
>
> nao seria 10, entao ? pois ele diz q o OBJETO INTEIRO ( com seus atributos
> ? ), eh igual...
>
> porque o atributo i de v nao foi modificado ???
>
> 18.   v.i = 20;
> 19.   ValHold vh = new ValHold();
> 20.   v = vh;
>
>
> agradeco
>
>
> Roger
>
>
>
> -----Mensagem Original-----
> De: Sergio Rubano <[EMAIL PROTECTED]>
> Para: Sou Java <[EMAIL PROTECTED]>
> Enviada em: Sexta-feira, 24 de Mar�o de 2000 17:11
> Assunto: RE: ENC: desafio
>
>
> Deveria sair 20 mesmo:
> Ao fazer a chamada ao m�todo another() (linha12), este recebe o objeto v
> instanciado no m�todo amethod() (linha10). Portanto ao atribuir o valor 20
> (linha18) em another(), na verdade estar� atribuindo ao objeto v de
> amethod().
>
> ----- Mensagem original -----
> De: Rogerio Lacerda [SMTP:[EMAIL PROTECTED]]
> Enviada em: Quarta-feira, 22 de Mar�o de 2000 22:58
> Para: Lista Java; Terra; [EMAIL PROTECTED]
> Assunto: desafio
>
> compilem e executem essa classe:
>
> vendo pelo codigo a saida logica seria :
>
> 10, 0, 30
>
> mas sai :
>
> 10, 0, 20
>
>
> QUAL A EXPLICACAO ???
> ======================
>
>
>
> 01. public class ObParm{
> 02.
> 03. public static void main(String argv[]){
> 04.   ObParm o = new ObParm();
> 05.   o.amethod();
> 06.    }
> 07
> 08.  public void amethod(){
> 09.   int i = 99;
> 10.   ValHold v = new ValHold();
> 11.   v.i=30;
> 12.   another(v,i);
> 13.   System.out.println(v.i);
> 14.  }//End of amethod
> 15
> 16.  public void another(ValHold v, int i){
> 17.   i=0;
> 18.   v.i = 20;
> 19.   ValHold vh = new ValHold();
> 20.   v = vh;
> 21.   System.out.println(v.i+ " "+i);
> 22.  }//End of another
> 23
> 24.  class ValHold{
> 25.  public int i = 10;
> 26. }
> 27
> 28. }
>
>
>
> * Para n�o receber mais e-mails desta lista envie um e-mail para
> [[EMAIL PROTECTED]]
> e no corpo do email escreva [unsubscribe <seu-email>] ou acesse
> http://apoio.cits.br:8080/guest/RemoteListSummary/javabr
> Veja as mensagens antigas em http://www.mail-archive.com/javabr%40cits.br/
>
>
>     --------------------------- 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]
>     [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
>     ---------------------------------------------------------------------
>
>

desenho.jpg

Responder a