Tenho este pequeno código da apostila da Caelum, fiz como manda a apostila, mas mesmoa ssim preciso de ajuda, queria qeu alguem comentasse o código pra eu poder entender direito o qeu e como se passa, não tenho ninguém pra explicar ainda, se alguém puder agradeço:
[code]class Conta {
int numero;
String dono;
double saldo;
double limite;
boolean saca(double valor){
if (this.saldo < valor){ // 1ª: aqui se o saldo for menor que o valor ele devolve “true” é isso mesmo?
return false; // 2ª: ou a gente tira por aqui " se for mesmo menor" ele devolve “false”?
}
else{
this.saldo = this.saldo - valor; //ai se ele devolver "false", como na 2ª linha, ele não processa nada ai em cima, usa o else, e vem pra está linha?
return true;
}
}
}
[/code]
[code]class Programa {
public static void main(String[] args) {
Conta minhaConta;
minhaConta = new Conta();
minhaConta.dono = "Duke";
minhaConta.saldo = 2200.0;
if (minhaConta.saca(2400)){ // aqui se alguém puder comentar agradeço, daqui pra baixo
System.out.println("Consegui sacar");
System.out.println("Saldo Atual: " + minhaConta.saldo);
} else {
System.out.println("não consegui sacar");
System.out.println("Saldo Atual: " + minhaConta.saldo);
}
}
}[/code]
Será que fui muito confuso nos meus comentários ai em cima?
Espero ancioso por alguém me ajudar a entender isso, obrigado a quem puder.
o método se propõe a fazer o seguinte procedimento:
1 - o método recebe como parâmetro um valor a ser sacado
2 - se o valor a ser sacado for maior que o saldo atual, return false, ou seja, não saca, não altera o valor atual.
3- se o valor for menor, faz a operação de subtração do saldo atual e return true para dizer que ocorreu tudo certo.
esse retorno é importante, ele funciona como um alerta, um flag, ou seja se meu método retornou false é porque não consegui sacar, se retornou true é porque o saque foi efetuado com sucesso.
Agora esse trecho:
aquele “if (minhaConta.saca(2400))” diz o seguinte:
se eu puder sacar 2400 faça:
[code]System.out.println("Saldo Atual: " + minhaConta.saldo); //aqui exibe o valor do saldo atual.[/code]
ou seja aquele boolean que o método saca retorna foi útil para fazer esse tipo de condição durante o desenvolvimento.
Existem outras maneiras de validar um método como esse, usando exceções especificas etc… mas esse exemplo é bem bacana.