|
Ol�
amigo Carlos,
O
amigo(se eu chamar de companheiro v�o achar q sou comunista) Jonatan e o exemplo
do amigo Bruno Borges enriquecem e sanam a d�vida q Java APENAS faz a passagem
atrav�s de valores e n�o por refer�ncia !! Quando um objeto � instanciado e
passado como argumento por um m�todo, O VALOR do argumento � a referencia para o
objeto !!! Esque�a se algu�m pensa q vai uma "c�pia do objeto"
dentro de algum m�todo.
A passagem por valor � at� uma forma inteligente
de se economizar recursos de mem�ria.
D� s�
uma lida nesse pequeno trecho aqui, tirado de uma apostila da pr�pria Sun (slide
137 of 506) :
Pass-by-Value
• The Java programming language only passes arguments by value • When an object instance is passed as an argument to a method, the value of the argument is a reference to the object • The contents of the object can be changed in the called method, but the object reference is never changed Na
pr�tica, Bruno Borges peguei seu c�digo e fiz pequenas altera��es, saca o c�digo
q o amigo Bruno colocou (envio a classe anexo tb) :
import java.util.*; public class atribuicao { public static void main(String[] args) { atribuicao roda = new atribuicao(); roda.teste(); } public void teste() {
Object a, b; a = new Vector(); b = new Date(); System.out.println("------- 1 parte ----------\n" ); System.out.println("a eh instancia de Vector? "+ (a instanceof Vector) + "\n" ); System.out.println("b eh instancia de Date? "+ (b instanceof Date) + "\n" ); metodo_atribuicao(a, b); a = b; System.out.println("------- 2 parte ----------\n" ); System.out.println("a eh instancia de Vector? "+ (a instanceof Vector) + "\n" ); System.out.println("b eh instancia de Date? "+ (b instanceof Date) + "\n" }
public void metodo_atribuicao(Object a, Object b) { a = b; System.out.println("------- 3 parte ----------\n" ); System.out.println("a eh instancia de Vector? "+ (a instanceof Vector) + "\n" ); System.out.println("b eh instancia de Date? "+ (b instanceof Date) ); } } A
sa�da disso a� fica assim :
------- 1 parte ----------
a eh
instancia de Vector? true
b eh
instancia de Date? true
------- 3 parte ----------
a eh
instancia de Vector? false
b eh
instancia de Date? true
------- 2 parte ---------- a eh
instancia de Vector? false
b eh
instancia de Date? true
Bom
amigos da lista espero ter ajudado a confund....quero dizer, espero ter
ajudado!! (Imagina se cai uma pergunta assim na prova de certifica��o
??)
EmTEMPO : Lembro-me meu GURU (Professor Paulo
Tiburcio), comentou uma vez q havia um "jeitinho" para se burlar isso em Java e
SIMULAR uma passagem por refer�ncia.
Edson CARVAlho Rua da Assembl�ia, 100 - 19 Andar
|
atribuicao.java
Description: Binary data
------------------------------ 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] -------------------------------------------------------------------------
