> > > >Qdo eh necessario alterar o proprio ponteiro(pgms de estrutura de dados) eh >necessario passar a famosa indirecao ou "ponteiro para ponteiro". O C++ >mascara esse mecanismo numa tentaiva de subir o nivel de tratamento(sera que >consegue :-) ?) e inventou a tal passagem por referencia que nada mais eh >que abreviacao da declaracao de ponteiro. > >Em Java eh analogo. O que vc tem tb sao ponteiros disfarcados com nome de >referencia. > >Logo em C/C++ no final das contas so existe passagem por valor. > Exato, então na verdade não existe 'passagem por referencia' em nenhuma linguagem uma vez que uma 'referencia' nada mais é do que um 'valor' qualquer.
Somente para fechar: Se eu passaria o valor (sendo o valor do meu objeto, então uma cópia do meu objeto), isso não funcionaria: void method(MyClass c){ c.setText("qual é o resultado"); } <snip> MyClass x = new MyClass("novo"); method(x); System.out.println(x.getText()); Se eu passaria a referencia ou uma copia da referencia, a saida seria: "qual é o resultado" se passar MyClass por VALOR (uma copia), o resultado seria "novo". > > > > > > >-----Mensagem original----- >De: Sven van ´t Veer [mailto:[EMAIL PROTECTED]] >Enviada em: 04 February 2002 10:21 >Para: [EMAIL PROTECTED] >Assunto: Re: RES: Re: RES: [java-list] Como é feita a passagem de parâmetros >em Java? > > >Poizz eh. > >A verdade é uma diferença sintatica: >'Pass by Reference' indica que a referencia na memoria do objeto é passado, >em java esta referencia é passada 'por valor' e não, como em C/C++ 'por >referencia' por isso, em Java não pode alterar o valor do objeto original. > >Leonardo - Itera wrote: > > >A única resposta certa é : A passagem de parametros é feita somente por >valor. > >Não adianta consultar a especificação da linguagem.. procure alguma >explicação conceitual sobre passagem por parametro e por valor pois creio >que você e o Lincolm estão falando a mesma coisa mas cada um chama de um >nome. > >[]'s, > >Leonardo. > >-----Mensagem original----- >De: Sven van ´t Veer [ mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >] >Enviada em: Segunda-feira, 4 de Fevereiro de 2002 07:25 >Para: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >Assunto: Re: Re: RES: [java-list] Como é feita a passagem de parâmetros em >Java? > > >Lincolm, > >A única resposta certo é: > >Em java passagem de parametros de tipos primitivos é por valor e de Objetos >é por referencia. No cado de Objetos é passado a referencia do Objeto na vm. >Ao entrar no metodo o VM cria uma copia do objeto. Dentro do metodo este >cópia é usado igual qualquer outro variavel local. Se não for bastante >claro, ver a 'java language specification', > >Sven > >Lincolm Ferreira de Aguiar wrote: > > >Olá Fábio, > >Tudo bem. Olha, ainda não ficou muito claro para mim o que você disse sobre >a passagem de parâmetros em Java. Fiz um exemplo com uma >matriz, e a matriz mesmo foi alterada. Quem disse isso foi um usuário aqui >da lista, que no momento não lembro o nome dele. Como >pode ser? Veja o código: > >public class Passagem extends Object { > > Object names[][] = new Object[1][2]; > > public Passagem(){ > > names[0][0] = "Lincolm"; > names[0][1] = "Ferreira"; > objects(names); > > for(int x=0; x<=names.length - 1; x++){ > for(int y=0; y<=names[x].length - 1; y++){ > System.out.println(names[x][y]); > } > } > > } > > public static void main(String args[]){ > > Passagem ps = new Passagem(); > > } > > public void objects(Object[][] n){ > > n[0][1] = "Aguiar"; > > > > > } > >} > >Se comentar a chamada de objects(names) o resultado será: >Lincolm >Ferreira > >No entanto, se remover os comentários a saída será: >Lincolm >Aguiar > >Sinceramente, poderia me explicar. > >Lincolm Ferreira de Aguiar >WebMaster - QueroProgramar >[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > >www.geocities.com/lincolmf <http://www.geocities.com/lincolmf> > >----- Original Message ----- >From: <mailto:[EMAIL PROTECTED]> <[EMAIL PROTECTED]> >To: <mailto:[EMAIL PROTECTED]> <[EMAIL PROTECTED]> >Sent: Monday, January 28, 2002 8:03 PM >Subject: RE: RES: [java-list] Como é feita a passagem de parâmetros em Java? > > > >Quer ter seu próprio endereço na Internet? >Garanta já o seu e ainda ganhe cinco e-mails personalizados. >DomíniosBOL - http://dominios.bol.com.br <http://dominios.bol.com.br> > > > > > >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 > >&oac >ute; 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 c > >om 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] <mailto:[EMAIL PROTECTED]> > > > -----Original Message----- > From: sven [ mailto:[EMAIL PROTECTED] <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 BARRE > >TO 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] ><mailto:[EMAIL PROTECTED]> ] > Enviada em: Thursday, January 24, 2002 8:16 PM > Para: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > Assunto: Re: [java-list] Como é feita a passasgem de parâmetros em > Java? > > > > Adalberto Zanata > [ [EMAIL PROTECTED] ><mailto:[EMAIL PROTECTED]> ] > [ http://www.espacoreverso.com.br/a.zanata ><http://www.espacoreverso.com.br/a.zanata> ] > ---- >- Original Message ----- > From: "Paulo Henrique Castro" <mailto:[EMAIL PROTECTED]> ><[EMAIL PROTECTED]> > To: <mailto:[EMAIL PROTECTED]> <[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< > >br> ----------- >----------------- > http://www.soujava.org.br <http://www.soujava.org.br> - Sociedade >de Usuários Java da > Sucesu-SP > dúvidas mais comuns: http://www.soujava.org.br/faq.htm ><http://www.soujava.org.br/faq.htm> > regras da lista: http://www.soujava.org.br/regras.htm ><http://www.soujava.org.br/regras.htm> > para sair da lista: envie email para > [EMAIL PROTECTED] ><mailto:[EMAIL PROTECTED]> > ----------------------------------------- > -------------------------------- > > > > > ------------------------------ LISTA SOUJAVA > ---------------------------- > http://www.soujava.org.br <http://www.soujava.org.br> > > - Sociedade de Usu&aa >cute;rios Java da > Sucesu-SP > dúvidas mais comuns: http://www.soujava.org.br/faq.htm ><http://www.soujava.org.br/faq.htm> > regras da lista: http://www.soujava.org.br/regras.htm ><http://www.soujava.org.br/regras.htm> > para sair da lista: envie email para > [EMAIL PROTECTED] ><mailto:[EMAIL PROTECTED]> > ------------------------------------------------------------------ > ------- > > ------------------------------ LISTA SOUJAVA > ---------------------------- > http://www.soujava.org.br <http://www.soujava.org.br> - Sociedade >de Usuários Java da > Sucesu-SP > dúvidas mais comuns: http://w <http://www.soujava.org.br/faq.htm> >ww.soujava.org.br/faq.htm > regras da lista: http://www.soujava.org.br/regras.htm ><http://www.soujava.org.br/regras.htm> > para sair da lista: envie email para > [EMAIL PROTECTED] ><mailto:[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 <http://www.soujava.org.br> - Sociedade de >Usuários Java da Sucesu-SP >dúvidas mais comuns: http://www.soujava.org.br/faq.htm ><http://www.soujava.org.br/faq.htm> >regras da lista: http://www.soujava.org.br/regras.htm ><http://www.soujava.org.br/regras.htm> >historico: http://www.mail-archive.com/java-list%40soujava.org.br ><http://www.mail-archive.com/java-list%40soujava.org.br> >para sair da lista: envie email para [EMAIL PROTECTED] ><mailto:[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] -------------------------------------------------------------------------