Fiz o seguinte código, para testar mais essa parte de métodos, achei muito estranho que o if(conseguiuRetirar = true) que fiz quando da true ele não faz a parte do true e sim a do false e vise versa, só resolveu quando coloque assim, if(conseguiuRetirar), queria uma explicação de porque não foi entendido pelo java o true como sendo true, e tendo o comportamento inverso.
package alura;
public class TestaMetodo {
public static void main(String[] args) {
Conta contaDoCristian = new Conta();
contaDoCristian.saldo = 100;
contaDoCristian.deposita(50);
System.out.println(contaDoCristian.saldo);
double valorSacar = 1000;
boolean conseguiuRetirar = contaDoCristian.saca(valorSacar);
System.out.println(contaDoCristian.saldo);
System.out.println(conseguiuRetirar);
if(conseguiuRetirar = true){
System.out.println("Saque efetuado com sucesso, Saldo atual = R$" + contaDoCristian.saldo);
System.out.println("Valor sacado = R$" + valorSacar);
}
else {
System.out.println("Saque NÃO efetuado, Saldo atual = R$" + contaDoCristian.saldo);
System.out.println("Valor que tentou sacar de R$" + valorSacar + "é maior que o saldo disponível atual de R$" + contaDoCristian.saldo);
}
}
}
saida:
150.0
150.0
false <----------- Retorno do Método saca
Saque efetuado com sucesso, Saldo atual = R$150.0
Valor sacado = R$1000.0