Comentar o código

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.

oi javaini,

Vamos ver esse trecho:

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.

Se o saldo for menor que o parâmetro valor, então o método vai retornar “false”.
Se entrar no bloco if, não vai entrar no bloco else, e vice-versa.

Na classe Programa vai ser pedido "se 2400 é maior que 2200 então imprime “não consegui sacar” (…), senão imprime “Consegui sacar” (…)

Obrigado pelas respostas vou estudar aqui pra entender direito, agora fica mais facil de passar isso pro papel, e entender tudo, vlw gente pela ajuda