tah maluco? onde tu leu isso? henrique
On Wed, 6 Nov 2002, Denard Costa Soares wrote: > Galera, > > Em java, não existe passagem por referência, é sempre por valor. Sem exceção. > Tipos primitivos ou não, é por valor. > > Abraços, > Denard C. Soares > ---------------------------------------------------------------- > Se você não perde cabeça quando todos ao redor já perderem, talvez você apenas não >esteja entendendo a situação. > ----------------------------------------------------------------- > > -----Original Message----- > From: Mário Roberto Porto Filho [mailto:mario@;cmagnani.com.br] > Sent: quarta-feira, 6 de novembro de 2002 13:23 > To: [EMAIL PROTECTED] > Subject: RES: [java-list] Duvida sobre atribuicao de objetos... > > Concordo com o Carlos..........é uma questão perigosa e todo mundo sempre confunde, >é normal até !!! > Mas em Java todos os objetos são passados por referência ( Para passar o valor, deve >se utilizar o método clone() de java.lang)... > Os tipos básicos são passados por valor, mesmo vetores de tipos básicos passam seu >valor e não sua referência !!!.... > Até mais !!!! > -----Mensagem original----- > De: Carlos Eduardo Carvalho [mailto:carlosetc@;unitech.com.br] > Enviada em: terça-feira, 5 de novembro de 2002 08:29 > Para: [EMAIL PROTECTED] > Assunto: Re: [java-list] Duvida sobre atribuicao de objetos... > Jonatan, > > Essa é uma afirmação perigosa de ser feita. Não sei se a passagem de parâmetros em >Java seria exatamente por valor, ao invés de por referência. Nesse mesmo exemplo que >você citou na mensagem abaixo, pode ser simulada uma situação onde fica clara essa >contradição. > > Vamos supor que tenhamos dois métodos, executar() e metodoAtribuicao(), como seguem >abaixo. > > public void executar() { > MeuBean a = new MeuBean(); > MeuBean b = new MeuBean(); > > a.setNome("Teste Atribuicao"); > > metodoAtribuicao(a, b); > > System.out.println("Bean A: "+a.getNome()); // A impressão na console da > System.out.println("Bean B: "+b.getNome()); // aplicação terá o mesmo valor > } > > public void metodoAtribuicao(MeuBean a, MeuBean b) { > b.setNome(a.getNome()); > } > > A partir desta justificativa creio que seja mais correto dizer que a passagem de >parâmetros de objetos em métodos seja por referência, enquanto que a passagem de >parâmetros de tipos básicos do java em métodos seja por valor. É uma questão meio >confusa de se afirmar, mas se estiver errado, corrijam-me! > > Falou! > > Carlos Eduardo Teixeira Carvalho > Analista de Sistemas - Fábrica de Software > Unitech Tecnologia de Informação > ----- Original Message ----- > From: Jonatan Schroeder <mailto:jona.s@;uol.com.br> > To: [EMAIL PROTECTED] ; Sr. <mailto:sr_apocalipse@;yahoo.com.br> Apocalipse > Sent: Monday, November 04, 2002 7:09 PM > Subject: Re: [java-list] Duvida sobre atribuicao de objetos... > > A passagem de parâmetros em java é por valor, e não por referência. Então, > > public void metodo_atribuicao(Object a, Object b) { > a = b; > } > não tem efeito algum. O objeto 'a' é passado ao método, mas quando você faz a >atribuição, você está fazendo com que o parâmetro a seja alterado, ou seja, ele deixa >de apontar para o local em que foi definido na chamada do método e passa a apontar >para o local do objeto b. > > --- > Jonatan Schroeder > [EMAIL PROTECTED] > > > ----- Original Message ----- > From: Sr. Apocalipse <mailto:sr_apocalipse@;yahoo.com.br> > To: [EMAIL PROTECTED] ; [EMAIL PROTECTED] > Sent: Monday, November 04, 2002 2:22 PM > Subject: [java-list] Duvida sobre atribuicao de objetos... > > Galera, > Eu gostaria que alguém me esclarecesse o seguinte ocorrido. > Eu queria fazer uma atribuicao de dois objetos dentro de um metodo e nao > consegui, quando retorna do metodo a atribuicao é desfeita. Fora do metodo a > atribuicao ocorre e um "aponta" para o outro. > O exemplo está abaixo: > > public void teste(){ > > Object a, b; > > a = new Vector(); > b = new Date(); > > metodo_atribuicao(a, b); > // Apos o metodo_atribuicao, o objeto a nao esta "apontando" para o > objeto b > // ou seja, o objeto a continua como Vector e o objeto b como Date. > > a = b; > // Agora sim o objeto a "aponta" para o objeto b > // ou seja, o objeto a agora é Date e o objeto b tambem > } > > public void metodo_atribuicao(Object a, Object b) { > a = b; > } > > _______________________________________________________________________ > Yahoo! GeoCities > Tudo para criar o seu site: ferramentas fáceis de usar, espaço de sobra e acessórios. > 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 > historico: http://www.mail-archive.com/java-list%40soujava.org.br > 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 historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------