Carlos
Eduardo,
Este
assunto é recorrentemente discutido aqui. A passagem de parâmetros em java é
sempre por valor. Isto é óbvio no caso dos tipos básicos. Mas fica obscuro no
caso de objetos.
Note,
que o parâmetro de um método não é o objeto e sim sua referência. Mas, esta
referência é passada por valor.
Exemplo:
void
myMethod (Object object)
{
object = new MyObject();
} Se a
passagem fosse por referência, o parâmetro object seria alterado para a
nova instância de MyObject(), quando o método terminasse. Mas isso não
acontece, pois a passagem de parâmetros é por valor.
abraços
Jorge Roberto Diniz Martins
[EMAIL PROTECTED] www.unear.net Tel.: +55 (21) 3389-2924 -----Original Message-----
From: Carlos Eduardo Carvalho [mailto:[EMAIL PROTECTED]] Sent: terça-feira, 5 de novembro de 2002 08:29 To: [EMAIL PROTECTED] Subject: 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
|
- Re: [java-list] Duvida sobre atribui... Carlos Eduardo Carvalho
- RES: [java-list] Duvida sobre at... Mário Roberto Porto Filho
- Re: [java-list] Duvida sobre atr... Jonatan Schroeder
- Re: [java-list] Duvida sobre... Carlos Eduardo Carvalho
- RES: [java-list] Duvida sobr... Mário Roberto Porto Filho
- RE: [java-list] Duvida sobre atribuicao d... Elaine Prata
- Re: [java-list] Duvida sobre atribuicao d... Jonatan Schroeder
- RES: [java-list] Duvida sobre atribu... Danilo Marcolin de Almeida César
- Re: [java-list] Duvida sobre atr... Daniel Monteiro
- Re: [java-list] Duvida sobre atribuicao d... Jorge Martins
- Re: [java-list] Duvida sobre atribuicao d... Gangrel
- Re: [java-list] Duvida sobre atribui... Jonatan Schroeder
- Re: [java-list] Duvida sobre atribui... Samuel Yuen
- RE: [java-list] Duvida sobre atribuicao d... Denard Costa Soares
- RE: [java-list] Duvida sobre atribui... Henrique Viecili
- Re: [java-list] Duvida sobre atr... Adriano Andrulis
- Re: [java-list] Duvida sobre... Hélio Brandão
- RE: [java-list] Duvida sobre atribuicao d... Edson Barbosa
- Re: [java-list] Duvida sobre atribui... Carlos Eduardo Carvalho
- RES: [java-list] Duvida sobre at... Mário Roberto Porto Filho