Em Java, a passagem de par�metros sempre � feita por valor.
Mas quando vc passa um objeto (matriz se encaixa nesta categoria)
� passado uma refer�ncia a esse objeto.
Ent�o:

String[] nomes = new String[2];
nomes[0] = "Douglas";
nomes[1] = "Drummond";

mudaNome1(nomes);
System.out.println(nomes[0]); // Imprime Disquete

mudaNome2(nomes);
System.out.println(nomes[1]); // Ainda imprime Drummond

void mudaNome1(String[] n) {
    n[0] = "Disquete";
}

void mudaNome2(String[] n) {
    n = new String[2];
    n[0] = "Teste";
    n[1] = "Teste2";
}


Por qu�? Como � passada a refer�ncia ao objeto, em mudaNome1, n e nomes
apontam para o mesmo objeto, ent�o ao alterar n[0] realmente estamos
alterando nomes[0]. Mas a passagem � feita por valor, ent�o se tentarmos
alterar a refer�ncia (fazer o objeto apontar para outro lugar), a refer�ncia
de n e nomes ser�o diferentes (ao fazer n = new String[2], n aponta para uma
nova �rea de mem�ria, enquanto nomes ainda aponta para o endere�o antigo)

    Espero ter ajudado um pouco, esse assunto � um pouco confuso,

        Douglas Drummond


------------------------------ 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] 
-------------------------------------------------------------------------

Responder a