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] 
-------------------------------------------------------------------------

Responder a