Olá, meu método transfere() adiciona 10.0 na outra conta mas não tira 10.0 da conta antiga. O que pode estar acontecendo? Obrigado Tiago
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, meu método transfere() adiciona 10.0 na outra conta mas não tira 10.0 da conta antiga. O que pode estar acontecendo? Obrigado Tiago
Olá tvsjazz, seu código não veio, tente enviar novamente por aqui para podermos te ajudar. Abs.
package br.com.bytebank.banco.modelo;
/**
* Classe que representa uma conta no bytebank
*
* @author Tiago
* @version 0.1
*
*/
public abstract class Conta {
protected double saldo;
private int agencia;
private int numero;
private Cliente titular;
private static int total = 0;
/**
* Construtor para inicializar o objeto Conta a partir da agencia e numero
* @param agencia
* @param numero
*/
public Conta(int agencia, int numero) {
Conta.total++;
//System.out.println("O total de contas é " + Conta.total);
this.agencia = agencia;
this.numero = numero;
//this.saldo = 100;
//System.out.println("Estou criando uma conta " + this.numero);
}
public abstract void deposita(double valor);
/**
* Valor precisa ser maior que o saldo
* @param valor
* @throws SaldoInsuficienteException
*/
public void saca(double valor) throws SaldoInsuficienteException {
if (this.saldo < valor) {
throw new SaldoInsuficienteException("Saldo: " + this.saldo + ", Valor: " + valor);
}
}
public void transfere(double valor, Conta destino) throws SaldoInsuficienteException {
this.saca(valor);
destino.deposita(valor);
}
public double getSaldo() {
return this.saldo;
}
public int getNumero() {
return this.numero;
}
public void setNumero(int numero) {
if (numero <= 0) {
System.out.println("Nao pode valor menor igual a 0");
return;
}
this.numero = numero;
}
public int getAgencia() {
return this.agencia;
}
public void setAgencia(int agencia) {
if (agencia <= 0) {
System.out.println("Nao pode valor menor igual a 0");
return;
}
this.agencia = agencia;
}
public void setTitular(Cliente titular) {
this.titular = titular;
}
public Cliente getTitular() {
return this.titular;
}
public static int getTotal() {
return Conta.total;
}
}
Ai está a classe Conta. Ele deposita da outra conta mais não saca
Olá tvsjazz, o if que você incluiu testa a situação de não haver saldo suficiente pra fazer o saque do valor, mas faltou incluir o else com o código que retira (subtrai) o dinheiro da conta. Testa a alteração que eu incluí abaixo e veja se passa a funcionar dessa forma.
public void saca(double valor) throws SaldoInsuficienteException {
if (this.saldo < valor) {
throw new SaldoInsuficienteException("Saldo: " + this.saldo + ", Valor: " + valor);
} else {
this.saldo -= valor;
}
}
Abs.
Nossa cara... óbvio né ahahaha que burro que fui hehe Valeu cara!