Comentar o código

3 respostas
J

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:

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  linha, ele não processa nada ai em cima, usa o else, e vem pra está linha?
         return true;
   
      }
   }
}
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);
          
       }

    }
 }
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.

3 Respostas

charlesbraw

oi javaini,

Vamos ver esse trecho:

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  linha, ele não processa nada ai em cima, usa o else, e vem pra está linha?  
          return true;  
      
       }

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:

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);  
             
        }  
   
     }
aquele "
if (minhaConta.saca(2400))
" diz o seguinte:

se eu puder sacar 2400 faça:

System.out.println("Saldo Atual: " + minhaConta.saldo);  //aqui exibe o valor do saldo atual.

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.

G

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” (…)

J

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

Criado 20 de novembro de 2010
Ultima resposta 20 de nov. de 2010
Respostas 3
Participantes 3