Lincolm. Note que n é uma referência para um Object[][]. Esta é referência é passada por valor, mas você obtem o objeto dela. A refência não pode ser altera, mas o objeto sim.
O que você fez foi alterar o objeto. Mais especificamente a posição [0][1]. Não há problemas nisso. Mas se você desejasse alterar a referência, fazendo seu parâmetro n apontar para outra matriz, seria impossível. OK? Basta testar este código: void method (String s[]) { s[0] = "Novo"; s = {"Mais novo ainda!"}; } abraços Jorge -----Original Message----- From: Lincolm Ferreira de Aguiar [mailto:[EMAIL PROTECTED]] Sent: segunda-feira, 4 de fevereiro de 2002 15:04 To: [EMAIL PROTECTED] Subject: Re: RES: [java-list] Como é feita a passagem de parâmetros em Java? Olá Jorge. Você rodou aquele código? Pergunto porque eu queria saber porque a segunda posição da matriz imprime Aguiar onde deveria imprimir Ferreira. Execute o código e vai entender o que estou falando. No método objects() é sim criado uma nova matriz, mas note que não estou imprimindo ela, estou imprimindo a matriz names. Por que a matriz names tem seu índice names[0][1] tem seu valor alterado para Aguiar se na verdade eu alterei n[0][1]? Um abraço, Lincolm Ferreira de Aguiar WebMaster - QueroProgramar [EMAIL PROTECTED] www.geocities.com/lincolmf ----- Original Message ----- From: "Jorge Martins" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, February 04, 2002 2:02 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 Lincolm, Não há incoerência no seu exemplo. A passagem de parâmetros em java continua sendo por valor. Quando você passa um array em java. A referência para este array é passada por valor. Logo, você pode alterar o array (como você alterou no seu exemplo) por que oum array permite esta operação. No entanto, não é possui criar trocar o array passado. Se os parâmetro do java fossem por valor, este método funcionaria: void method (String [] array) { array = {"Eu", "sou", "um", "novo", "array"}; } O que você fez foi simplesmente alterar um valor do array, e isto é permitido. Não é permitido você alterar O ARRAY EM SI. abraços Jorge -----Original Message----- From: Lincolm Ferreira de Aguiar [mailto:[EMAIL PROTECTED]] Sent: terça-feira, 29 de janeiro de 2002 08:40 To: [EMAIL PROTECTED] Subject: Re: RES: [java-list] Como é feita a passagem de parâmetros em Java? 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] www.geocities.com/lincolmf ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[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 > > > > > > 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ó 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 com 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] > > > -----Original Message----- > From: sven [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 BARRETO 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]] > Enviada em: Thursday, January 24, 2002 8:16 PM > Para: [EMAIL PROTECTED] > Assunto: Re: [java-list] Como é feita a passasgem de parâmetros em > Java? > > > > Adalberto Zanata > [ [EMAIL PROTECTED]] > [ http://www.espacoreverso.com.br/a.zanata] > > ----- Original Message ----- > From: "Paulo Henrique Castro" <[EMAIL PROTECTED]> > To: <[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 > ---------------------------- > 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] > ------------------------------------------------------------------ > ------- > > ------------------------------ 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] > ------------------------------------------------------------------ > ------- > > > > -- "'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] ------------------------------------------------------------------------- ------------------------------ 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] ------------------------------------------------------------------------- ------------------------------ 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] -------------------------------------------------------------------------