Tenho esses dois códigos abaixo alguém poderia me dizer qual a diferença entre eles, pois na execução dos mesmo ambos me retornam os valores idênticos? O segundo exemplo é da apostila da Caelum. O primeiro exemplo eu que fiz. Qual esta correto “exemplo 1” ou “exemplo 2”?
// Exemplo 1.
void sacar1(double saque){
this.saldo1 -= saque;
System.out.println("Meu saque na conta 1 foi de: " + saque);
}
// Exemplo 2.
void sacar2 (double saque){
double novoSaldo = this.saldo2 - saque;
this.saldo2 = novoSaldo;
System.out.println("Meu saque na conta 2 foi de: " + saque);
}
O exemplo 1 é mais direto… descontando do saldo pertencente ao Objeto, o valor que foi passado no metodo.
No exemplo 2, a pessoa apenas pegou o saldo pertencente ao Objeto, descontou o valor recebido no metodo, e com este resultado, atribuiu ao saldo do Objeto.
Ou seja… deu mais voltas, e fez a mesma coisa.
Uma versao mais didatica digamos assim…
Eu faria da primeira forma, mas ambos estao corretos se o objetivo é retirar um valor do Saldo.
Completando a resposta do amigo ai, você pode usar os operadores ‘+=’, ‘-=’, ‘*=’, ‘/=’ (nunca usei outros, mas acho que só são esses), quando, na operação que você irá fazer, você quer usar a mesma variável.
Por exemplo: int a = 10; a *= 3;
a segunda instrução indica que eu devo pegar o ‘a’, que possui valor 10, e multiplicar por 3, que vai resultar em 30.