Em C a
referencia (ponteiro para o tipo de dado) eh passado por valor. Ou seja o
valor do ponteiro (&H12735) nao eh alterado, mas a estrutura para o qual ele
aponta pode ser alterada. SO EXISTE PASSAGEM POR VALOR
Qdo eh
necessario alterar o proprio ponteiro(pgms de estrutura de dados) eh necessario
passar a famosa indirecao ou "ponteiro para ponteiro". O C++ mascara esse
mecanismo numa tentaiva de subir o nivel de tratamento(sera que consegue :-) ?)
e inventou a tal passagem por referencia que nada mais eh que abreviacao da
declaracao de ponteiro.
Em
Java eh analogo. O que vc tem tb sao ponteiros disfarcados com nome de
referencia.
Logo
em C/C++ no final das contas so existe passagem por
valor.
-----Mensagem original-----Poizz eh.
De: Sven van �t Veer [mailto:[EMAIL PROTECTED]]
Enviada em: 04 February 2002 10:21
Para: [EMAIL PROTECTED]
Assunto: Re: RES: Re: RES: [java-list] Como � feita a passagem de par�metros em Java?
A verdade � uma diferen�a sintatica:
'Pass by Reference' indica que a referencia na memoria do objeto � passado, em java esta referencia � passada 'por valor' e n�o, como em C/C++ 'por referencia' por isso, em Java n�o pode alterar o valor do objeto original.
Leonardo - Itera wrote:
[EMAIL PROTECTED]" type="cite">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-----Lincolm,
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?
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 c om 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 BARRE TO 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< br> -----------
-----------------
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-- "'You guys (at Microsoft) still don't get it,' because it's sort of Java with reliability, productivity and security deleted." James Gosling
