Não consigo identificar o erro no codigo?

5 respostas
diagramajava
M

Não consigo identificar o erro no código tenho que fazer os métodos sacar e depositar porem esta dando erro

Diagrama:

O cliente Especial recebe um valor limite na sua conta, só podendo sacar até o valor do limite + saldo. Caso ele tente sacar um valor acima do limite+saldo , uma mensagem de “Saque não pode ser efetuado, valor acima do limite” deve ser mostrada.
O cliente Poupança só pode sacar da sua conta , quando seu saldo atingir R$2.000,00, caso ele tente um saque e o saldo ainda não atingiu este valor , uma mensagem deve ser dada “Saque não efetuado, seu saldo é inferior ao valor exigido para saque”

codigo:
cliente conta:

package estudo02;

public class clienteconta {
    private String nome;
    private  String conta;
    double saldo;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getConta() {
        return conta;
    }

    public void setConta(String conta) {
        this.conta = conta;
    }

    public double getSaldo() {
        return saldo;
    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }
    
    public void deposita(double v){
        
    } 
    
    public void saca (double v){
      if (v=limite+saldo) 
      else if System.out.println("“Saque não pode ser efetuado, valor acima do limite” ");
           }}

**cliente especial :** 
package estudo02;

public class clienteespecial extends clienteconta{
    private double limite=100;

    public double getLimite() {
        return limite;
    }

    public void setLimite(double limite) {
        this.limite = limite;
    }}

**cliente poupança:**
package estudo02;

public class clientepoupanca extends clienteconta{
    private float taxajuros=5;

    public float getTaxajuros() {
        return taxajuros;
    }

    public void setTaxajuros(float taxajuros) {
        this.taxajuros = taxajuros;
    }
    
    public void corrigepoupanca(){
       saldo=saldo+saldo*getTaxajuros();
        
       
    }
}

5 Respostas

R

Qual o erro que está acontecendo ?

M
nessa parte do codigo:

public void saca (double v){

if (v=limite+saldo)

else if System.out.println("“Saque não pode ser efetuado, valor acima do limite” ");

esta aparecendo dois erros.
R

if ele espera uma condição que seja verdadeira ou falsa. Neste caso vc está atribuindo valor a v.
Se vc quer verificar se o valor a sacar é igual a soma limite+saldo teria que ser assim:
if (v==limite+saldo) == e não =
Mas já vou te falar esta formula está errada p/ proposta pois a regra é qual??

“Matheus_Oliveira1:

O cliente Especial recebe um valor limite na sua conta, só podendo sacar até o valor do limite + saldo. Caso ele tente sacar um valor acima do limite+saldo , uma mensagem de “Saque não pode ser efetuado, valor acima do limite” deve ser mostrada.

Então v não pode ser maior que limite+saldo, implementa o operador correto p/ esta situação.
https://pt.wikibooks.org/wiki/Java/Operadores

J

usa sinal de maior pra saber se o (v) é maior que o limite + saldo

if (v > limite+saldo)
else if System.out.println("“Saque não pode ser efetuado, valor acima do limite” ");

I

Fala aí!
Blz?

Você está começando em programação né?
Faça uma coisa de cada vez.

public void saca(double v) {
    double somaDeSaldoComLimite = limite + saldo;
    if(v > somaDeSaldoComLimite) {
        System.out.println("Saque não pode ser efetuado, valor acima do limite");
    }
}

Perceba que nesse trecho de código houveram três modificações:

  1. Extraí a soma do if para uma variável. A soma é calculada antes do if;

  2. Troquei o sinal de igualdade pelo sinal de maior;

  3. Não entendi por que tinha um else if logo debaixo do if, sendo que se a condição fosse verdadeira ele não fazia nada. Removi esse else if;

Espero ter ajudado.

Abs.

Criado 5 de dezembro de 2016
Ultima resposta 6 de dez. de 2016
Respostas 5
Participantes 4