Como empregar um boolean numa classe que está em função de movimentação bancaria?

 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Hygor
 */
public class bancofinal {
    int numero;
    double valor;
    String nome;
    double saldo;
   //Abaixo sintaxe do tipo double e void.
    
    void saca(double valor){
      double novoSaldo = this.saldo - valor;
      saldo = novoSaldo;
    }//fim.
    void deposita(double valor){
        double novoSaldo = this.saldo + valor;
    }//Fim.
    //Agora uma expressão booleana.
    boolean saca (double valor){
        
    }
}

quando eu declaro que a expressão vai ser booleana começa a dar erro no netbeans, como declarar que vai ser boolean de forma certa???

valor está declado como Double, ou você muda a declaração, ou muda o parametro do método!

Qualquer método booleano tem que retornar um booleano.

Por exemplo:

public boolean saca(double valor){
   boolean sacou =true;
   return sacou;

}

Repare que seus outros métodos são void, que não retornam valores.

Cara… as respostas acima estão corretas…

Mais ninguem percebeu um detalhe:

Vc tem dois métodos saca(double). Os método podem ter o mesmo nome e paramêtros diferentes, mas não o mesmo nome, mesmos paramêtros e tipos de retornos diferentes.

   void saca(double valor){   
     double novoSaldo = this.saldo - valor;   
     saldo = novoSaldo;   
   }
   //Agora uma expressão booleana.   
   boolean saca (double valor){   
         
   }

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

/**
*

  • @author Hygor
    */
    public class bancofinal {
    int numero;
    double valor;
    String nome;
    double saldo;
    //Abaixo sintaxe do tipo double e void.
    Conta minhaConta = new Conta();
    void saca(double valor){
    double novoSaldo = this.saldo - valor;
    saldo = novoSaldo;
    }
    //fim.}
    void deposita(double valor){
    double novoSaldo = this.saldo + valor;
    }

    boolean saca (double valor){
    if (this.saldo < valor){
    return true;
    }
    else{
    this.saldo - valor;
    return true;
    }

}
[/code]

alguma alma caridosa poderia corrigir esse ultimo método para mim??? na apostila da caelum é foda aprender

Compilei aqui, e notei que você está repetindo métodos.

void saca(double valor) e Boolean saca(double valor)

O que diferencia os metodos são: Assinatura, tipo e ordem dos parâmetros.

Você não usa uma IDE? Se não usa, melhor comessar a usar… além de muitas vantagens, elas tem compilação em tempo real, e normalmente informam a você qual o erro, e onde ele está ocorrendo!

vlw ae

eu uso Netbeans po nao reparou nao???

então qr dizer q eu não posso repetir o tipo da variavel? nao posso repetir o ‘saca’ e o double

Não podes ter dois métodos com o mesmo nome, e o mesmo tipo de argumentos, mesmo que tenham return type diferentes.

No teu caso tens dois métodos saca, que recebem como parâmetro um double. Se mudares, por exemplo o nome do método boolean saca(double valor) para boolean podeSacar(double valor) já funciona.

Não reparei, até pq se o NetBeans não faz essa verificação, melhor você comessar a usar o Eclipse… o eclipse ja trouxe “duplicated methods” assim que copiei seu codigo pra lá…

e como o amigo respondeu, não é possível repetir o saca(double), tens que alterar o nome mesmo!

abs

Ou o tipo/qtd de parâmetros. Assim, terá um overload.

eu não consigo declarar o metedo booleano nem em outra classe,me desculpem a burrice mas,eu to estudando em casa pela apostila da caelum e to tendo dificuldade… e a dificuldade q eu to tendo agora é na hora de declarar o seguinte metodo:
class bancofinal2{
boolean pega (double valor){
if (this.saldo < valor){
return false;
}
else{
this.saldo = this.saldo - valor;
return true;
}

           }
      }

CASO ENCERRADO;
CASE CLOSES;

galera ja achei o erro,esqueci de declarar as variaveis primitivas :-o

“Epa Epa Epa… Muita calma nessa hora”… ele faz a validação sim… Não afirme alguma coisa de algo que você não usa, ou se usa passou despercebido, rsrsrsrsrsrs

quanto ao tópico… acho que foi respondido…

Abraços a todos :wink: