Página 328 do livro Thinking
in Java, do Bruce Eckel: Na seção "pass by value" ele discute com mais detalhes essa questão,
apesar de desde o começo do capítulo ele dar a entender que existe passagem por
referência. Ele coloca dois pontos de
vista. No primeiro, ele afirma: "Java passes everything by value". No segundo, ele diz: "Java passes primitives by value(no argument there) but objects are
passed by reference". Mais adiante, no mesmo parágrafo, ele diz: "Since ou
don´t get a local copy of the object when you pass it
into a method, objects are clearly not passed by value" Leiam com atenção essa seção e
verão o que digo abaixo. Se vcs lerem com bastante
atenção, ele fala de um handle. Esse handle
é o endereço para o objeto, o que ele,logo na primeira página do capítulo, também
chama de safety pointer(ponteiros seguros). O que acontece em Java é que não
há como passar o objeto como parâmetro, e sim o
handle dele. Quando o método recebe o handle, é criada uma cópia do handle, mas
o objeto continua quietinho, não é criada uma cópia dele. Nesse momento,
existem dois handles apontando para o mesmo
objeto. Isso gera um comportamento similar à passagem por referência, porque
utilizando um ou outro, o estado do objeto vai ser alterado. De uma vez por todas: NÃO EXISTE PASSAGEM POR REFERÊNCIA EM JAVA!!!!! O comportamento é muito
similar, mas é por valor. Abraços, Denard -----Original Message----- Bem, sei que não tenho ainda
tanta experiência com Java, mas o que aprendi no Thinking in Java de Bruce Eckel é exatamente o que o Carlos Chierici falou: objetos são sempre passados por referência. --- Leonardo Souza Mario Bueno <[EMAIL PROTECTED]> escreveu: > Nain, nain. Java não 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) é passada uma referencia ao objeto > i por valor.. ou seja, > mudanças na referencia dentro do metodo não terão > 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# > > > > > > Sérgio, > > > > Eu gostaria de fazer uma pequena correção no seu > email. > > > > Java não possui passagem por referência. Somente > por valor. Existe uma > forma > > de "simular" passagem de parâmetros por > referência, utilizando os objetos > ou > > tipos primitivos armazenados em um array, por > exemplo. Mas não existe > > passagem por referência. > > > > Antes que o alguém dê pulinhos de alegria, eu > pergunto: e qual é o > problema? > > Alguém por favor, apresente um artigo > demonstrativo, baseado em testes de > > performance ou de algum requisito que mostre qual > é o grandisíssimo > problema > > de Java utilizar passagem por valor, e não por > referência? Mesmo que haja, > > isso significa que Java é ruim? > > > > Abraços, > > Denard > > > > > > ------------------------------ 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] > ------------------------------------------------------------------------- > _______________________________________________________________________________________________ Yahoo! GeoCities Tenha seu lugar na Web. Construa hoje mesmo sua home page no Yahoo!
GeoCities. É fácil e grátis! http://br.geocities.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 para sair da lista: envie email para
[EMAIL PROTECTED] ------------------------------------------------------------------------- |
- Re: [java-list] Re: Artigo Java x C# Ricardo Santiago
- Fwd: Re: [java-list] Re: Artigo Java x C# Gabriel De Munno Francisco
- Re: [java-list] Re: Artigo Java x C# Gabriel De Munno Francisco
- Re: [java-list] Re: Artigo Java x C# Leonardo Bueno
- RES: [java-list] Re: Artigo Java x C# Flávio Leite
- Re: [java-list] Re: Artigo Java x C# Gabriel De Munno Francisco
- RE: [java-list] Re: Artigo Java x C# Luiz Fernando Bicalho
- Re: [java-list] Re: Artigo Java x C# Carlos E O Chierici
- Re: [java-list] Re: Artigo Java x C# Leonardo Souza Mario Bueno
- Re: [java-list] Re: Artigo Java x C# Renato Quedas
- Re: [java-list] Re: Artigo Java x C# Denard . Soares
- Re: [java-list] Re: Artigo Java x C# Sven van ´t Veer
- Re: [java-list] Re: Artigo Java x C# Leonardo Souza Mario Bueno
- Re: [java-list] Re: Artigo Java x C# Leonardo Souza Mario Bueno