O valor do ponteiro nada mais é que o endereço que é passado.
-----Mensagem original----- De: Java Dev [mailto:[EMAIL PROTECTED]] Enviada em: segunda-feira, 4 de fevereiro de 2002 14:53 Para: [EMAIL PROTECTED] Assunto: RES: RES: Re: RES: [java-list] Como é feita a passagem de parâmetros em Java? Em C a referencia (ponteiro para o tipo de dado) eh passado por valor. Ou seja o valor do ponteiro (&H12735) nao eh alterado, mas a estrutura para o qual ele aponta pode ser alterada. SO EXISTE PASSAGEM POR VALOR 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. -----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 -- "'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] -------------------------------------------------------------------------