o que se passa é uma referência...
Ex.:
//-----------------------------------------------------
public class Teste
{
public static void setArray ( double dArray[] )
{
dArray[0] = 10;
dArray[1] = 20;
}
public static void main ( String[] args )
{
double dArrayOriginal[] = {0,0};
System.out.println ( "Array antes da passagem de parâmetro:" );
System.out.println ( dArrayOriginal[0] + " | " + dArrayOriginal[1] );
setArray ( dArrayOriginal );
System.out.println ( "Array depois da passagem de parâmetro:" );
System.out.println ( dArrayOriginal[0] + " | " + dArrayOriginal[1] );
}
}
//-----------------------------------------------------
[]'s
Fabio Eduardo Thomaz
Rodrigo escreveu:
Bem, até onde sei a Classe String não pode ser alterada, logo quando vc fizer o += ele irá instanciar uma nova String, logo a referência não será mais a mesma. O exemplo que me deste não mudou minha opinião... Ainda acredito que quando a passagem for de objetos será por referência e não por valor... Se criar uma classe e passá-la como parametro e dentro deste método, eu alterar algum valor da mesma isso refletirá no meu objeto... Veja exemplo:public class Teste01 { private int numero; public Teste01(int i) { setNumero( i ); } public void setNumero( int i ) { numero = i; } public int getNumero() { return numero; } } public class Teste { public static void main(String[] args) { Teste01 t = new Teste01(10); xxx( t ); System.out.println( t.getNumero() ); } private static void xxx( Teste01 i ) { i.setNumero( 15 ); } } Veja, passei um objeto como parâmetro e ao setar o valor modificou o estado do meu objeto... Quanto ao que você disse de o append estar alterando uma propriedade interna da classe... Bem, meus objetos são feitos de propriedades e métodos, e se eu criasse dois objetos StringBuffer diferentes e passase um deles como parâmetro alteraria apenas daquele objeto... Logo, referência... ----- Original Message ----- From: "Alexandro Strack" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, May 14, 2003 6:57 PM Subject: Re: [java-list] Pergunta for Dummies Oi Rodrigo, Não concordo com você. O que acontece na verdade é que a classe StringBuffer é mutável (diferente de String que é não mutável) e logo o que se passa é que o método append está alterando o valor de uma propriedade(variável) interna da classe StringBuffer. Essa propriedade armazena o valor. Para você ter a certeza do que estou falando mude de StringBuffer para String e substitua o append por += . Você verá que imprimirá JAVA. Para ir mais além mude todo o seu exemplo para trabalhar não com um StringBuffer mas com um Integer. Verá que também não funcionará pois a classe Integer é não mutável. Em resumo: a passagem de parâmetro é sempre por valor. Um abraço, Alexandro Strack ----- Original Message ----- From: "Rodrigo" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Saturday, May 10, 2003 7:16 PM Subject: Re: [java-list] Pergunta for Dummieshehehe, o exemplo não foi, agora sim: --- public class Teste { public static void main(String[] args) { StringBuffer s = new StringBuffer( " Java" ); teste( s ); System.out.println( s ); } public static void teste( StringBuffer s ) { s.append( " é bala" ); } } ---- A saída será "Java é bala" o q no meu ver significa que a passagem foi por referência já que alterei o meu objeto que passei por parâmetro... Fallow ----- Original Message ----- From: "Rodrigo" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Saturday, May 10, 2003 7:14 PM Subject: Re: [java-list] Pergunta for DummiesEu sou suspeito a falar, mas pelo que sei toda a passagem de objetos emjavaé por referência, já as passagens de tipos básicos serão sempre porvalor...Desculpe-me se estiver errado... Segue um exemplo: ----- Original Message ----- From: "José Voss Junior" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, May 07, 2003 9:21 PM Subject: Re: [java-list] Pergunta for Dummies Correção, Passagem de Parametro em Java é somente por Valor!!!!! ----- Original Message ----- From: Ricardo Jun Taniguchi <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, May 02, 2003 5:36 PM Subject: RE: [java-list] Pergunta for Dummies Lembrando-se de que os parâmetros são passados por referência em Java,temosque: new Boolean(true) à esquerda = objeto A instanciado com o parâmetrotrue;new Boolean(true) à direita = objeto B instanciado com o parâmetro true; Como a comparação == é feita por meio da verificação dos endereços dos objetos e não pelo seu conteudo, naturalmente essa comparação dariafalse.Agora, se quiser que seja true, temos que fazer: if (new Boolean(true).equals(new Boolean(true))) -----Original Message----- From: Nelson [mailto:[EMAIL PROTECTED]] Sent: Tue 29-Apr-03 16:35 To: SouJava Cc: Subject: [java-list] Pergunta for Dummies Alguém pode me dizer, porque o código abaixo, imprime "false" ? class teste { public static void main(String[] args) { if (new Boolean(true) == new Boolean(true)) { System.out.println("true"); } else { System.out.println("false"); } } }-------------------------------------------------------------------------- ------ ------------------------------ LISTASOUJAVA ----------------------------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]------------------------------------------------------------------------------------------------------- LISTASOUJAVA ----------------------------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] -------------------------------------------------------------------------