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