Realmente Java faz uma cópia da referencia antes de passá-la para a função, mas estou curioso para saber qual é a diferença que isso faz na prática?
Posso estar errado, mas acho que toda essa confusão veio da diferença que em C++ Strings são mutáveis e em Java não são. O ponto é: Não dá para alterar a cópia da referência que ficou fora da função de dentro da função. Em C++ vc pode fazer isso MESMO PARA OBJETOS IMUTÁVEIS: altereIsso(&a, &b, &c); Em Java não dá para fazer isso para OBJETOS IMUTÁVEIS: altereIsso(a, b, c); // Não dá se for imutável. Se for imutável em Java vc terá que fazer: a = altereIsso(a); b = altereIsso(b); c = altereIsso(c); NA MINHA CABEÇA ISSO É MAIS UMA DIFERENÇA NA SINTAXE DA LINGUAGEM DO QUE UMA VANTAGEM. Mas pode ser que alguém apresente algum caso em que isso seria realmente uma vantagem de C++/C#. ----------------------------------- Sergio Oliveira Jr. Sun Certified Java Programmer Desenvolvedor e Consultor Java Empresa SmartJava WWW.SMARTJAVA.COM.BR "Dê ao homem um peixe e alimente-o por um dia. Ensine-o a pescar e alimente-o por uma vida." ----------------------------------- >From: "Luiz Fernando Bicalho" <[EMAIL PROTECTED]> >Reply-To: [EMAIL PROTECTED] >To: <[EMAIL PROTECTED]> >Subject: RE: [java-list] Re: Artigo Java x C# >Date: Thu, 4 Oct 2001 10:06:10 -0300 > >entao o cara esta certo, e passagem por valor > > > >-----Original Message----- >From: Ricardo Santiago [mailto:[EMAIL PROTECTED]] >Sent: quinta-feira, 4 de outubro de 2001 07:58 >To: [EMAIL PROTECTED] >Subject: Re: [java-list] Re: Artigo Java x C# > > > >Cara, neste caso voce esta MUDANDO a referencia que >voce recebeu. >Voce esta criando uma NOVA referencia e tentando >atribuir ` referencia que voce recebeu como parametro. > >Mas a passagem de objetos EH por referencia (as >referencias sao passadas por valor) > >Exemplo: > >class Numero { > > private int value; > > public Numero(int value) { > this.value = value; > } > > public void inc() { > value++; > } > > public int getValue() { > return value; > } > > public static void main(String [] s) { > Numero num = new Numero(1); > System.out.println("num " + num.getValue()); > increment(num); > System.out.println("num " + num.getValue()); > } > > private static void increment(Numero num) { > num.inc(); > } > >} > >Ricardo Munhoz Santiago > >--- Leonardo Souza Mario Bueno <[EMAIL PROTECTED]> >wrote: > > Nain, nain. Java nco tem passagem por referencia nem > > para objetos. > > > > Ex: > > > > public void inc(Integer i) { > > i = new Integer(i.intValue()++); > > System.out.println("i = " + i); // i = 2 > > } > > > > i = new Integer(1); > > inc(i); > > System.out.println("i = " + i); // i = 1 > > > > Resultado: > > > > i = 2 > > i = 1 > > > > Ao chamar inc(i) i passada uma referencia ao objeto > > i por valor.. ou seja, > > mudangas na referencia dentro do metodo nco terco > > efeito fora dele.. > > > > []'s, > > > > Leonardo. > > > > ----- Original Message ----- > > From: "Carlos E O Chierici" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Wednesday, October 03, 2001 1:35 PM > > Subject: Re: [java-list] Re: Artigo Java x C# > > > > > > > A passagem de parametros em Java funciona assim: > > > > > > - P/ objetos: por referencia > > > - P/ primitivos: por valor > > > > > > Veja o exemplo: > > > > > > public class Teste > > > { > > > public void run() > > > { > > > TObj obj = new TObj(); > > > obj .i = 3; > > > System.out.println(obj.i); // obj.i = 3 > > > NovoInt(obj); > > > System.out.println(obj.i); // obj.i = 5 > > > } > > > > > > public void NovoInt(TObj meuObj) > > > { > > > meuObj.i = 5; > > > } > > > > > > public static void main(String args[]) > > > { > > > Teste t = new Teste(); > > > t.run(); > > > } > > > } > > > > > > class TObj > > > { > > > public int i; > > > } > > > > > > > > > []s > > > > > > Carlos E O Chierici > > > [EMAIL PROTECTED] > > > > > > ----- Original Message ----- > > > > > > From: <[EMAIL PROTECTED]> > > > To: <[EMAIL PROTECTED]> > > > Sent: Wednesday, October 03, 2001 9:52 AM > > > Subject: RE: [java-list] Re: Artigo Java x C# > > > > > > > > > Sirgio, > > > > > > Eu gostaria de fazer uma pequena corregco no seu > > email. > > > > > > Java nco possui passagem por referjncia. Somente > > por valor. Existe uma > > forma > > > de "simular" passagem de parbmetros por > > referjncia, utilizando os objetos > > ou > > > tipos primitivos armazenados em um array, por > > exemplo. Mas nco existe > > > passagem por referjncia. > > > > > > Antes que o alguim dj pulinhos de alegria, eu > > pergunto: e qual i o > > problema? > > > Alguim por favor, apresente um artigo > > demonstrativo, baseado em testes de > > > performance ou de algum requisito que mostre qual > > i o grandismssimo > > problema > > > de Java utilizar passagem por valor, e nco por > > referjncia? Mesmo que haja, > > > isso significa que Java i ruim? > > > > > > Abragos, > > > Denard > > > > > > > > > ------------------------------ LISTA SOUJAVA > > ---------------------------- > > > http://www.soujava.org.br - Sociedade de > > Usuarios Java da Sucesu-SP > > > dzvidas 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 Usuarios > > Java da Sucesu-SP > > dzvidas 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] > > >------------------------------------------------------------------------- > > > > >__________________________________________________ >Do You Yahoo!? >NEW from Yahoo! GeoCities - quick and easy web site hosting, just >$8.95/month. >http://geocities.yahoo.com/ps/info1 > >------------------------------ LISTA SOUJAVA ---------------------------- >http://www.soujava.org.br - Sociedade de Usuarios Java da Sucesu-SP >dzvidas 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] >------------------------------------------------------------------------- > _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp ------------------------------ 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] -------------------------------------------------------------------------