Como fazer para alterar num método um tipo primitivo?
Como fazer para alterar num método um tipo primitivo?
6 Respostas
int c;
c = 1;
louds
acho que ele quis dizer como mudar by reference.
cara, nao da pra fazer isso em java
private void mudaInt(int x) {
x = 3;
}
quando sair dai, o x mandado continua o mesmo, ja que a chamada de metodo em java eh sempre por valor (e no caso de objetos o valor eh o endereco).
voce nao deveria estar precisando desse tipo de coisa se estivesse bem OO seu sistema. ou entao eh um caso SUPER particular. voce pode mudar o retorno do metodo apra voltar um int, ou entao, que eh algo TERRIVEL e ABOMINAVEL, passar um int[] x como argumento, ai o de fora eh mudado, ja que a array eh um objeto.
Muda um primitivo usando as classes Integer, Double, Float…
ae da para voce simular uma passagem por referencia…
java.lang.*
Muda um primitivo usando as classes Integer, Double, Float…
ae da para voce simular uma passagem por referencia…
Oi Hempx.
nao vai funcionar porque as classes wrappers sao imutaveis, como a String. Mas essa ideia funciona se voce mesmo criar sua classe wrapper mutavel.
int[] y = {6};
mudaInt(y);
private void mudaInt(int[] x) {
x[0] = 3;
}
Mesmo assim, isso não é muito "estético".
Eu vi em um lugar que a pessoa passava a varíavel atraves de um vetor com um elemento.int[] y = {6}; mudaInt(y); private void mudaInt(int[] x) { x[0] = 3; }Mesmo assim, isso não é muito "estético".
Isso funciona porque arrays são objetos, logo o que é passado para o método é a cópia do endereço onde o array pode ser encontrado (ou seja, no fundo, é uma passagem por referência). Assim, se você alterar os valores do seu array dentro de um método, estas modificações serão refletidas fora do método. ;)