Po Leonardo nao pisa na bola cara. > public void inc(Integer i) { > i = new Integer(i.intValue()++); se voce prestar atenção no seu codigo vai ver que você cria uma nova instancia de um Integer nesta linha acima, perdendo assim completamente a referencia que você passou na chamada.
Type wrappers não são uma boa opção para demonstrar passagem por referencia porque não permitem que você altere o valor embutido neles. Que tal alguma coisa assim: public class App { public App() { } public static void main(String[] args) { App app1 = new App(); Inteiro inteiro = new Inteiro(); inteiro.setValor(1); System.out.println("O valor do inteiro é:" + inteiro.getValor()); inc(inteiro); System.out.println("O valor do inteiro é:" + inteiro.getValor()); } public static void inc(Inteiro obj) { int novoValor = obj.getValor(); novoValor = ++novoValor; obj.setValor(novoValor); } } class Inteiro { public Inteiro() { } private int valor; public int getValor() { return valor; } public void setValor(int valor) { this.valor = valor; } } Entao com isso provamos o que está escrito em qualquer livro que preste: Objetos em java são sempre passados por referência enquanto tipos primitivos são passados por valor. Um abraço Renato ----- Original Message ----- From: "Leonardo Souza Mario Bueno" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, October 03, 2001 5:36 PM Subject: Re: [java-list] Re: Artigo Java x C# > Nain, nain. Java não tem passagem por referencia nem para objetos. > > Ex: > > public void inc(Integer i) { > i = new Integer(i.intValue()++); > System.out.println("i = " + i); // i = 2 > } > > i = new Integer(1); > inc(i); > System.out.println("i = " + i); // i = 1 > > Resultado: > > i = 2 > i = 1 > > Ao chamar inc(i) é passada uma referencia ao objeto i por valor.. ou seja, > mudanças na referencia dentro do metodo não terão efeito fora dele.. > > []'s, > > Leonardo. > > ----- Original Message ----- > From: "Carlos E O Chierici" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Wednesday, October 03, 2001 1:35 PM > Subject: Re: [java-list] Re: Artigo Java x C# > > > > A passagem de parametros em Java funciona assim: > > > > - P/ objetos: por referencia > > - P/ primitivos: por valor > > > > Veja o exemplo: > > > > public class Teste > > { > > public void run() > > { > > TObj obj = new TObj(); > > obj .i = 3; > > System.out.println(obj.i); // obj.i = 3 > > NovoInt(obj); > > System.out.println(obj.i); // obj.i = 5 > > } > > > > public void NovoInt(TObj meuObj) > > { > > meuObj.i = 5; > > } > > > > public static void main(String args[]) > > { > > Teste t = new Teste(); > > t.run(); > > } > > } > > > > class TObj > > { > > public int i; > > } > > > > > > []s > > > > Carlos E O Chierici > > [EMAIL PROTECTED] > > > > ----- Original Message ----- > > > > From: <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Wednesday, October 03, 2001 9:52 AM > > Subject: RE: [java-list] Re: Artigo Java x C# > > > > > > Sérgio, > > > > Eu gostaria de fazer uma pequena correção no seu email. > > > > Java não possui passagem por referência. Somente por valor. Existe uma > forma > > de "simular" passagem de parâmetros por referência, utilizando os objetos > ou > > tipos primitivos armazenados em um array, por exemplo. Mas não existe > > passagem por referência. > > > > Antes que o alguém dê pulinhos de alegria, eu pergunto: e qual é o > problema? > > Alguém por favor, apresente um artigo demonstrativo, baseado em testes de > > performance ou de algum requisito que mostre qual é o grandisíssimo > problema > > de Java utilizar passagem por valor, e não por referência? Mesmo que haja, > > isso significa que Java é ruim? > > > > Abraços, > > Denard > > > > > > ------------------------------ 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á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://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] -------------------------------------------------------------------------