Passagem por referência ou valor são conceitos, não é uma questão de consultar as especificações. Primeiro, só podemos alterar o valor de um parâmetro e o mesmo afetar a origem por duas maneiras, a primeira utilizando ponteiros e alterando o espaço de memória por ele indicado, e a segunda utilizando um parâmetro passado por referência. Como java não trabalho com ponteiros logo o parâmetro é passado por referência. Mesmo porque estaria conceitualmente incorreto dizer que podemos alterar o valor de um parâmetro se o mesmo fosse passado por valor.
 
Atenciosamente
Otávio Ribeiro
----- Original Message -----
Sent: Monday, February 04, 2002 2:59 PM
Subject: Re: Re: RES: [java-list] Como é feita a passagem de parâmetros em Java?

Certo. Agora ficou mais claro. Desculpe.
 
Um abraço,
 
Lincolm Ferreira de Aguiar
WebMaster - QueroProgramar
[EMAIL PROTECTED]
 
----- Original Message -----
Sent: Monday, February 04, 2002 1:13 PM
Subject: RES: Re: RES: [java-list] Como é feita a passagem de parâmetros em Java?

Oi Lincolm, eu sei que você sabe o que está falando :). Eu também digo que a passagem é feita por valor, concordamos 100%. Já com o Sven digamos que eu concordo 50% ;).
 
[]'s,
 
Leonardo.
-----Mensagem original-----
De: Lincolm Ferreira de Aguiar [mailto:[EMAIL PROTECTED]]
Enviada em: Segunda-feira, 4 de Fevereiro de 2002 09:56
Para: [EMAIL PROTECTED]
Assunto: Re: Re: RES: [java-list] Como é feita a passagem de parâmetros em Java?

Ei Leonardo, eu sei o que estou falando. E digo que Java usa passagem por valor. O Sven que está tentando provar que é por referência. Já indiquei alguns links apontando para o JDC(Java Developement Connection) onde é mostrada claramente essa distinção.
Não tenho que provar nada, apenas digo  que Java usa passagem por valor.
 
Lincolm Ferreira de Aguiar
WebMaster - QueroProgramar
[EMAIL PROTECTED]
 
----- Original Message -----
Sent: Monday, February 04, 2002 9:46 AM
Subject: RES: Re: RES: [java-list] Como é feita a passagem de parâmetros em Java?

A única resposta certa é : A passagem de parametros é feita somente por valor.
 
Não adianta consultar a especificação da linguagem.. procure alguma explicação conceitual sobre passagem por parametro e por valor pois creio que você e o Lincolm estão falando a mesma coisa mas cada um chama de um nome.
 
[]'s,
 
Leonardo.
-----Mensagem original-----
De: Sven van ´t Veer [mailto:[EMAIL PROTECTED]]
Enviada em: Segunda-feira, 4 de Fevereiro de 2002 07:25
Para: [EMAIL PROTECTED]
Assunto: Re: Re: RES: [java-list] Como é feita a passagem de parâmetros em Java?

Lincolm,

A única resposta certo é:

Em java passagem de parametros de tipos primitivos é por valor e de Objetos é por referencia. No cado de Objetos é passado a referencia do Objeto na vm. Ao entrar no metodo o VM cria uma copia do objeto. Dentro do metodo este cópia é usado igual qualquer outro variavel local. Se não for bastante claro, ver a 'java language specification',

Sven

Lincolm Ferreira de Aguiar wrote:
012901c1a8b9$a5d99200$[EMAIL PROTECTED] type="cite">
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&oac ute; 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&aa cute;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://w ww.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]
-------------------------------------------------------------------------


-- 
"'You guys (at Microsoft) still don't get it,' 
because it's sort of Java with reliability, productivity and security deleted."

					James Gosling

Responder a