Acho que não existe ponteiro em java. O que quero é passar um argumento por Valor e não por Referencia.
public int somaDeAcrescimo(int a, int b)
{
a++;
b++;
return (a + b);
}
Como devo fazer para que quando saisse do método, a variavel a e b tivessem seu valor alterado?
OBS: O método é sem lógica mesmo, foi só pra colocar como exemplo.
Java não tem este conceito de passagem de parametros por referência
Editado: tem sim, vc pode passar a referência a uma matriz, mas não vi até agora referência a 2 inteiros, algo como uma função swap que troque os valores de 2 inteiros (int).
Vc pode fazer assim
[code]public class Exemplo{
public int valor;
public Exemplo(int valor){
this.valor = valor;
}
public int getValor(){
return this.valor;
}
public int Incremento(){
return ++this.valor;
}
public int somaDeAcrescimo(Exemplo B)
{
return (this.Incremento() + B.Incremento());
}
public static void main (String args[]){
Exemplo A = new Exemplo(1);
Exemplo B = new Exemplo(2);
System.out.println("A = " + A.getValor() + " B = "+ B.getValor());
System.out.println("O resultado de somaDeAcrescimo eh " + A.somaDeAcrescimo(B));
System.out.println("A = " + A.getValor() + " B = "+ B.getValor());
}
}
[/code]
Mas não existe essa entidade “ponteiro” que permita acessar uma variavel através de um endereço de memória, que é o que a passagem por referência faz. Editado: Tem um pacote da sun que permite fazer umas coisinhas mas… sei la… eu não usaria… :twisted:
Entretanto vc pode usar o encapsulamento de dados, que ao meu ver é muito melhor e menos confuso.
Gustavo, nao eh que java nao tem ponteiro, ele apenas esconde de vc. Quando vc passa um parametro num metodo em java, se o valor dele for alterado vai ser refletido na variavel original. Ou seja vc sempre ta passando seus params por referencia(eu acho que eh referencia e nao valor). Tomara que eu nao tenha me engando :).
Alberto
O ponteiro em java eh chamado referência
Foi discutido aqui:
http://www.guj.com.br/posts/list/23110.java
Aqui tem um exemplo bacana
http://cslibrary.stanford.edu/106/
Valeu Pessoal. Tirei a minha duvida.
Abraços