1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Caixa - limite erro

Estou querendo saber porque da erro nesse código:

public class CaixaAutomatico {

    int numero;
    double saldo;
    int limite;

    public double limite(double quantidade) {
          // posso sacar até saldo+limite
          if (quantidade >= this.saldo + this.limite) { 
              return false;
            } else {
              this.saldo = this.saldo - quantidade;
              return true;
            }
          }    
}

Eduardo segue as classes que fiz até agora, sem as classes Testes:

Reservatorio:

public class Reservatorio {

    private int qtdCedula10 = 0;
    private int qtdCedula20 = 0;
    private int qtdCedula50 = 0;
    private int saqueDisponivel;
    int cont50 = 0;
    int cont20 = 0;
    int cont10 = 0;

    //Método que Calcula o número mínimo de cédulas necessárias
    public int[] CedulasNecessarias(int valor){

        //valorNecessario {10,20,50);
        int[] valorNecessario = new int[3];

         while (valor > 0) 
         {      
                if ((valor - 50) >= 0){  
                    valor -= 50;      
                    this.cont50++;  

                } else if ((valor - 20) >= 0){  
                    valor -= 20;  
                    this.cont20++;  
                } else if ((valor - 10) >= 0){  
                    valor -= 10;  
                    this.cont10++;
                }
         }

                valorNecessario[0] = cont10;
                valorNecessario[1] = cont20;
                valorNecessario[2] = cont50;

                return valorNecessario;
         }

    //Método que Informa a Quantidade de cédulas disponíveis no Reservatório
    public int[] QuatidadeCelulasDisponiveis(){

        int[] resultado = new int [3];    

        resultado[0] = this.qtdCedula10;
        resultado[1] = this.qtdCedula20;
        resultado[2] = this.qtdCedula50;

        return resultado;
    }

    //Método que define a Quantidade de cédulas disponíveis no Reservatório
    public boolean DefinirQuantidadeDeCelulasDisponiveis(int qtdCedula10s, int qtdCedula20s, int qtdCedula50s){    

        if(qtdCedula10s >= 0 && qtdCedula20s >= 0 && qtdCedula50s >= 0){
            this.qtdCedula10 = qtdCedula10s;
            this.qtdCedula20 = qtdCedula20s;
            this.qtdCedula50 = qtdCedula50s;    
            return true;
            }else{
                return false;
            }
        }

    //Metodo Informa total disponiveis para saque;
        public int TotalDisponivelParaSaque(){

            int totalCedula10 = this.qtdCedula10 * 10;
            int totalCedula20 = this.qtdCedula20 * 20;
            int totalCedula50 = this.qtdCedula50 * 50;

            this.saqueDisponivel = totalCedula10 + totalCedula20 + totalCedula50;

            return this.saqueDisponivel;
        }
}

Conta Corrente:

public class ContaCorrente {

    private double saldo;

    //Método Saque
    public boolean sacar (double valor) {
        if (this.saldo < valor) {
            return false;
        } else {
            this.saldo -= valor; 
            return true;
        }
    }

    //Método Depósito
    public boolean depositar (double valor)
    {
        if(valor > 0){
             this.saldo += valor;
            return true;
            } else {
                return false;
            }
    }

    //Método Saldo
    public double pegaSaldo(){

        return this.saldo;
    }
}

Caixa Automático:

public class CaixaAutomatico {

    private double LIMITE = 500;
    double saldo;

    private boolean isVerificarLimite(double valor) {
        if (LIMITE >= valor)
            return true;
        else
            return false;
    }

    public boolean saca(double valor) {
        if (isVerificarLimite(valor)) {
            if (this.saldo >= valor) {
                this.saldo -= valor;
                return true;
            }
        }
        return false;
    }

    public boolean deposito (double valor)
    {
        if(valor > 0){
             this.saldo += valor;
            return true;
            } else {
                return false;
            }
    }
}
  • Especifique melhor o que esse código faz. Se você não tem dinheiro tirar o dinheiro do limite seria isso ?

    Eduardo Maia   21 de abr de 2015
  • Certo. O exercício pede para: Coordenar o saque de uma conta corrente e a liberação de notas do reservatório Gerenciar o limite de saque disponível. E as seguintes restrições: O limite de saque padrão é de $500, não é permitido sacar acima do saldo disponível na conta do cliente e não é permitido saques acima do limite de saque definido. Eu fiz esse método aí, mas não sei se fica melhor com boolean.

    thedark.10013   22 de abr de 2015
  • Creio que está faltando mais OO em suas classes, cadê a composição de classes e a interface Conta que gerencia os tipos corretamente?

    edu_fernandes   22 de abr de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java junit testes testng eclipse ou faça a sua própria pergunta.