Pior � que ele n�o t�. Mesmo em objetos, s�o passadas c�pias das refer�ncias
aos objetos. O que � permitido � usar a copia para alterar atributos do
objeto ou executar seus m�todos.
Se por acaso voce alterar o valor da variavel do metodo local, a variavel
original continua com o mesmo valor.
Da uma olhada no seguinte c�digo:
public class Copia {
public String teste;
public Copia(String str) {
teste = str;
}
}
public class TestaCopia {
public static void main(String[] args) {
Copia cp = new Copia("x") ;
mudarRef(cp); //se fosse passagem por referencia, aqui ele mudaria a
referencia
System.out.println(cp.teste); //se fosse por referencia imprimiria
"y"
}
public void mudarRef(Copia copia) {
copia = new Copia("y");
}
}
Espero n�o ter complicado mais.
Abra�os,
Adriano Andrulis
----- Original Message -----
From: "Henrique Viecili" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, November 11, 2002 3:36 PM
Subject: RE: [java-list] Duvida sobre atribuicao de objetos...
tah maluco? onde tu leu isso?
henrique
On Wed, 6 Nov 2002, Denard Costa Soares wrote:
> Galera,
>
> Em java, n�o existe passagem por refer�ncia, � sempre por valor. Sem
exce��o.
> Tipos primitivos ou n�o, � por valor.
>
> Abra�os,
> Denard C. Soares
> ----------------------------------------------------------------
> Se voc� n�o perde cabe�a quando todos ao redor j� perderem, talvez voc�
apenas n�o esteja entendendo a situa��o.
> -----------------------------------------------------------------
>
> -----Original Message-----
> From: M�rio Roberto Porto Filho [mailto:mario@;cmagnani.com.br]
> Sent: quarta-feira, 6 de novembro de 2002 13:23
> To: [EMAIL PROTECTED]
> Subject: RES: [java-list] Duvida sobre atribuicao de objetos...
>
> Concordo com o Carlos..........� uma quest�o perigosa e todo mundo sempre
confunde, � normal at� !!!
> Mas em Java todos os objetos s�o passados por refer�ncia ( Para passar o
valor, deve se utilizar o m�todo clone() de java.lang)...
> Os tipos b�sicos s�o passados por valor, mesmo vetores de tipos b�sicos
passam seu valor e n�o sua refer�ncia !!!....
> At� mais !!!!
> -----Mensagem original-----
> De: Carlos Eduardo Carvalho [mailto:carlosetc@;unitech.com.br]
> Enviada em: ter�a-feira, 5 de novembro de 2002 08:29
> Para: [EMAIL PROTECTED]
> Assunto: Re: [java-list] Duvida sobre atribuicao de objetos...
> Jonatan,
>
> Essa � uma afirma��o perigosa de ser feita. N�o sei se a passagem de
par�metros em Java seria exatamente por valor, ao inv�s de por refer�ncia.
Nesse mesmo exemplo que voc� citou na mensagem abaixo, pode ser simulada uma
situa��o onde fica clara essa contradi��o.
>
> Vamos supor que tenhamos dois m�todos, executar() e metodoAtribuicao(),
como seguem abaixo.
>
> public void executar() {
> MeuBean a = new MeuBean();
> MeuBean b = new MeuBean();
>
> a.setNome("Teste Atribuicao");
>
> metodoAtribuicao(a, b);
>
> System.out.println("Bean A: "+a.getNome()); // A impress�o na console
da
> System.out.println("Bean B: "+b.getNome()); // aplica��o ter� o mesmo
valor
> }
>
> public void metodoAtribuicao(MeuBean a, MeuBean b) {
> b.setNome(a.getNome());
> }
>
> A partir desta justificativa creio que seja mais correto dizer que a
passagem de par�metros de objetos em m�todos seja por refer�ncia, enquanto
que a passagem de par�metros de tipos b�sicos do java em m�todos seja por
valor. � uma quest�o meio confusa de se afirmar, mas se estiver errado,
corrijam-me!
>
> Falou!
>
> Carlos Eduardo Teixeira Carvalho
> Analista de Sistemas - F�brica de Software
> Unitech Tecnologia de Informa��o
> ----- Original Message -----
> From: Jonatan Schroeder <mailto:jona.s@;uol.com.br>
> To: [EMAIL PROTECTED] ; Sr. <mailto:sr_apocalipse@;yahoo.com.br>
Apocalipse
> Sent: Monday, November 04, 2002 7:09 PM
> Subject: Re: [java-list] Duvida sobre atribuicao de objetos...
>
> A passagem de par�metros em java � por valor, e n�o por refer�ncia. Ent�o,
>
> public void metodo_atribuicao(Object a, Object b) {
> a = b;
> }
> n�o tem efeito algum. O objeto 'a' � passado ao m�todo, mas quando voc�
faz a atribui��o, voc� est� fazendo com que o par�metro a seja alterado, ou
seja, ele deixa de apontar para o local em que foi definido na chamada do
m�todo e passa a apontar para o local do objeto b.
>
> ---
> Jonatan Schroeder
> [EMAIL PROTECTED]
>
>
> ----- Original Message -----
> From: Sr. Apocalipse <mailto:sr_apocalipse@;yahoo.com.br>
> To: [EMAIL PROTECTED] ; [EMAIL PROTECTED]
> Sent: Monday, November 04, 2002 2:22 PM
> Subject: [java-list] Duvida sobre atribuicao de objetos...
>
> Galera,
> Eu gostaria que algu�m me esclarecesse o seguinte ocorrido.
> Eu queria fazer uma atribuicao de dois objetos dentro de um metodo e nao
> consegui, quando retorna do metodo a atribuicao � desfeita. Fora do metodo
a
> atribuicao ocorre e um "aponta" para o outro.
> O exemplo est� abaixo:
>
> public void teste(){
>
> Object a, b;
>
> a = new Vector();
> b = new Date();
>
> metodo_atribuicao(a, b);
> // Apos o metodo_atribuicao, o objeto a nao esta "apontando" para o
> objeto b
> // ou seja, o objeto a continua como Vector e o objeto b como Date.
>
> a = b;
> // Agora sim o objeto a "aponta" para o objeto b
> // ou seja, o objeto a agora � Date e o objeto b tambem
> }
>
> public void metodo_atribuicao(Object a, Object b) {
> a = b;
> }
>
> _______________________________________________________________________
> Yahoo! GeoCities
> Tudo para criar o seu site: ferramentas f�ceis de usar, espa�o de sobra e
acess�rios.
> http://br.geocities.yahoo.com/
>
> ------------------------------ 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]
-------------------------------------------------------------------------