Não é passado uma copia de uma referencia!!! imagina o seguinte: char a[] = "Andre Moura Barreto"; char *b = a; muda(char* vai){ char c[] = "trocou"; vai = c; }
após muda() a aponta para "trocou" pois b estava apontando para a, porém vai estava apontandao para a. Passando uma 'cópia' de referencia não adianta. Em java a REFERENCIA é passada, e dentro do metodo UMA COPIA DO OBJETO é criada como VARIAVEL LOCAL. E por isso o objeto original é immutavel!!! ANDRE MOURA BARRETO wrote: > Muito bem...finalmente alguém que entende e teve uma boa didática para >ensinar. > Alguns estão achando que com Array funciona como referência. > Não funciona. Uma cópia da referência do Array é passada. Isso não é nem >nunca será passagem por referência, sempre será por valor. > >-----Mensagem original----- >De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] >Enviada em: Monday, January 28, 2002 8:04 PM >Para: [EMAIL PROTECTED] >Assunto: RE: RES: [java-list] Como é feita a passagem de parâmetros em >Java? > > >Amigos, > >Como esse assunto está sendo bastante discutido, vou me meter no meio >também e tentar esclarecer... >O Java trata a passagem de parâmetros de forma diferente para tipos >primitivos e objetos, mas sempre é passada por valor. >Funciona mais ou menos assim (vou usar o exemplo do curso de Java da >Sun, que fiz a semana passada): > >Se você passa um tipo primitivo para um método assim: >... >int i = 10; >this.alteraValor(i) >System.out.print(i) // Imprime o valor 10 >... > >alteraValor(int j){ > j = 15; >} >O que acontece? O Java entrega uma cópia do conteúdo de i para o método. >Só que o conteúdo de i é igual a 10. >Já se fizermos a mesma coisa com um objeto, vejam só: > >... >MyDate data = new MyDate("28/01/2002"); >this.alteraValor(data); >System.out.print(data); // Imprime o valor "28/01/2002"; >this.alteraValor2(data); >System.out.print(data); // Imprime o valor "28/02/2002"; >... > >alteraValor(MyDate t){ > t = new MyDate("31/07/2002"); >} > >alteraValor2(MyDate t){ > t.setMes("02"); >} > >Porquê no primeiro método o valor não se alterou, mas no segundo sim? >Funciona da mesma maneira que a passagem de um tipo primitivo. O >conteúdo da variável data não é o objeto MyDate, e sim o endereço da >memória onde está o objeto MyDate. E, da mesma maneira como acontece com >o tipo primitivo, esse valor (endereço do objeto) não pode ser alterado >(tentamos alterar essa referência com o comando new MyDate). >Já o conteúdo do objeto pode ser alterado tranqüilamente, pois ele fica >em outra parte da memória. > >Quaisquer dúvidas, perguntem.... > >[] > >Fábio Jorge Corrêa >Citibank e-Business Solutions >Phone: 55 11 3457.0675 >Fax: 55 11 3457.0652 >[EMAIL PROTECTED] > > > -----Original Message----- > From: sven [mailto:[EMAIL PROTECTED]] > Sent: sexta-feira, 28 de dezembro de 2001 12:51 > To: java-list > Cc: sven > Subject: Re: RES: [java-list] Como é feita a passasgem de parâmetros > em Java? > > > > Um bom engano... > > Em Java, parametros são passados por referencia, mas dentro da função > uma copia é usado. > > ANDRE MOURA BARRETO wrote: > > > Vc está equivocado. > Java não possue passagem de Parâmetro por referência. > Somente por valor, ou seja, uma cópia é passada. > > -----Mensagem original----- > De: Adalberto Zanata [Forum] [ mailto:[EMAIL PROTECTED]] > Enviada em: Thursday, January 24, 2002 8:16 PM > Para: [EMAIL PROTECTED] > Assunto: Re: [java-list] Como é feita a passasgem de parâmetros em > Java? > > > > Adalberto Zanata > [ [EMAIL PROTECTED]] > [ http://www.espacoreverso.com.br/a.zanata] > > ----- Original Message ----- > From: "Paulo Henrique Castro" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Thursday, January 24, 2002 11:26 AM > Subject: Re: [java-list] Como é feita a passasgem de parâmetros em > Java? > > > > > Existe uma maneira de diferenciar as passagens de parâmetros em > Java, por > valor e por referência? > > > > Ateh onde sei a passagem de parametros em Java eh somente > por > referencia!! > > []s > > PH > > > -- > "Live fast, die old, and make very sure everyone knows you were > there." - > Alan Cox > > > ------------------------------ 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 > para sair da lista: envie email para > [EMAIL PROTECTED] > ----------------------------------------- > -------------------------------- > > > > > ------------------------------ 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 > para sair da lista: envie email para > [EMAIL PROTECTED] > ------------------------------------------------------------------ > ------- > > ------------------------------ 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 > 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 > > > > > > >------------------------------ 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] >------------------------------------------------------------------------- > -- "'You guys (at Microsoft) still don't get it,' because it's sort of Java with reliability, productivity and security deleted." James Gosling ------------------------------ 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] -------------------------------------------------------------------------