Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Dúvida no Ex. 1 da Aula 3 - Começando com Orientação a objetos

Porque não consigo fazer com que apareça a mensagem de saque... Esta dando erro de simbolo. Alguém pode me ajudar?

class Conta {
    Pessoa titular;
    int numero;
    int agencia;
    double saldo;

    void deposita(double ValorASerDepositado){
        this.saldo += ValorASerDepositado;
    }

    boolean saca(double ValorASerSacado){
        if(this.saldo >= ValorASerSacado){
            System.out.println("Transação efetuada com Sucesso!");
            return true;
        }else{
            System.out.println("Saldo indisponivel para saqu!");
            return false;
        }
    }
}

class Pessoa {
    String nome;
    String dataNascimento;
    String CPF;

}

class Programa {
        public static void main(String[] args){
            Conta david = new Conta();
            david.numero = 0012;
            david.agencia = 142;
            david.saldo = 2000.0;

            david.titular = new Pessoa();
            david.titular.nome = "David William do Nascimento";
            david.titular.dataNascimento = "07/10/1985";
            david.titular.CPF = "345430798-88";

            david.ValorASerSacado(3000.0);            
            System.out.println(david.ValorASerSacado);

            Conta celia = new Conta();
               celia.numero = 0015;
            celia.agencia = 241;
            celia.saldo = 3000.0;



       System.out.println(david.saldo);
       System.out.println(celia.saldo);     

        }   

}
5 respostas

David,

no seu método ele precisa retornar algum resultado.

nesse caso que está o java entende que não tem garantia o retorno por causa do if .

modifique o seu método para o seguinte caso.

boolean saca(double ValorASerSacado){
        if(this.saldo >= ValorASerSacado){
            System.out.println("Transação efetuada com Sucesso!");
            return true;
        }else{
            System.out.println("Saldo indisponivel para saqu!");
            return false;
        }
    return false;
}

outra coisa , na sua classe programa , você também não está chamando o método saca

você está chamando um método que não existe que é :

david.ValorASerSacado(3000.0);

troque para:

david.saca(3000.0);

espero ter ajudado, bons estudos

Ainda esta dando erro.

class Conta {
    Pessoa titular;
    int numero;
    int agencia;
    double saldo;

    void deposita(double ValorASerDepositado){
        this.saldo += ValorASerDepositado;
    }

    boolean saca(double ValorASerSacado){
        if(this.saldo >= ValorASerSacado){
            System.out.println("Transação efetuada com Sucesso!");
            return true;
        }else{
            System.out.println("Saldo indisponivel para saqu!");
            return false;
        }
        return false;
    }
}

class Pessoa {
    String nome;
    String dataNascimento;
    String CPF;

}

class Programa {
        public static void main(String[] args){
            Conta david = new Conta();
            david.numero = 0012;
            david.agencia = 142;
            david.saldo = 2000.0;

            david.titular = new Pessoa();
            david.titular.nome = "David William do Nascimento";
            david.titular.dataNascimento = "07/10/1985";
            david.titular.CPF = "345430798-88";

            david.saca(3000.0);            
            System.out.println(david.ValorASerSacado);

            Conta celia = new Conta();
               celia.numero = 0015;
            celia.agencia = 241;
            celia.saldo = 3000.0;



       System.out.println(david.saldo);
       System.out.println(celia.saldo);     

        }   

}

David,

é preciso modificar essa linha :

  System.out.println(david.ValorASerSacado);

para

  System.out.println(david.saldo);

outra coisa , retira aquele return que te falei pois ele irá dar erro também , desculpe a minha falha .

modificando essa linha , irá dar certo seu sistema .

Olá Pessoal,

David,

Troque o trecho abaixo:

david.saca(3000.0);
System.out.println(david.ValorASerSacado);

No código acima o compilador irá apresentar um erro, pois não existe um atributo ou método chamado ValorASerSacado, então acredito que ele nem chega a compilar a classe.

Troque por

david.saca(3000.0);
System.out.println("Saldo atual de David =  R$" + david.saldo);

Entretanto, a mensagem de transação que exibirá na hora do saque (3000.0) será "Saldo indisponivel" já que entrará na condição falsa. Pois o valor de saque é mair do que o saldo.

Quanto aos returns do método saca(), não há a necessidade de colocar outro return neste contexto, como bem lembrado por Celso. Pois de qualquer forma ele entrará no TRUE ou FALSE, não terá meio termo.

Ficando desta forma:

boolean saca(double valorASerSacado){
        if(this.saldo >= valorASerSacado){
            System.out.println("Transação efetuada com Sucesso!");
            return true;
        }else{
            System.out.println("Saldo indisponivel para saque!");
            return false;
        }
    }

Abs

solução!

Resolvido...muito obrigado