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

[Dúvida] Como atualizar o títular da conta - br.com.bytebank.banco.modelos.Cliente@1b6d3586

CONTA package br.com.bytebank.banco.modelos;

/**

  • Classe representa a moldura de uma conta na ByteBank. *
  • @author Eduardo Sartori
  • @version 1.3 */

public abstract class Conta { double saldo; private int agencia; private int numero; private Cliente titular; private static int total;

/**
 * Construtor para inicializar objeto Conta a partir da agência e número.
 *
 *
 * @param agencia
 * @param numero
 */
public Conta(int agencia, int numero) {
    Conta.total++;
    this.agencia = agencia;
    this.numero = numero;
}

public abstract void deposita(double valor);

/**
 * Valor precisa ser maior do que o saldo.
 *
 * @param valor
 * @throws SaldoInsuficienteException
 */
public void saca(double valor) throws SaldoInsuficienteException {

    if (this.saldo < valor) {
        throw new SaldoInsuficienteException("Saldo da conta: R$ " + this.saldo + ", Valor de saque: R$ " + valor);
    }

    this.saldo -= valor;
}
public void transferencia(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("Não aceitamos valores menores ou iguais a 0!!!");
        return;
    }
    this.numero = numero;
}

public int getAgencia() {
    return this.agencia;
}

public void setAgencia(int agencia) {
    if (agencia <= 0) {
        System.out.println("Não aceitamos valores menores ou igual a 0!");
        return;
    }
    this.agencia = agencia;
}

public Cliente getTitular() {
    return titular;
}

public void setTitular(Cliente titular) {
    this.titular = titular;
}


public static int getTotal() {
    return total;
}

AQUI QUE ESTOU TENTANDO RESOLVER O PROBLEMA EM TITULAR DA CONTA @Override public String toString() { return "Títular da conta: " + this.titular + " Saldo em conta: R$ " + this.saldo + " Agência: " + this.agencia + " Número: " + this.numero; }

}

CONTA CORRENTE package br.com.bytebank.banco.modelos;

public class ContaCorrente extends Conta implements Tributavel {

public ContaCorrente(int agencia, int numero) {
    super(agencia, numero);
}

@Override
public void saca(double valor) throws SaldoInsuficienteException {
    double valorASacar = valor + 0.2;
    super.saca(valorASacar);
}

@Override
public void deposita(double valor) {
    super.saldo += valor;
}

@Override
public double getValorImposto() {
    return super.saldo * 0.01;
}


@Override
public String toString() {
    return "Conta Corrente - " + super.toString();
}

}

TESTE

package br.com.bytebank.banco.teste;

import br.com.bytebank.banco.modelos.Cliente; import br.com.bytebank.banco.modelos.ContaCorrente; import br.com.bytebank.banco.modelos.ContaPoupanca;

public class TesteSystem_out_println {

public static void main(String[] args) {

// System.out.println("x"); // System.out.println(3); // System.out.println(false);

    ContaCorrente contaCorrente = new ContaCorrente(321, 10);
    ContaPoupanca contaPoupanca = new ContaPoupanca(22, 15);
    Cliente cliente = new Cliente();
    Cliente cliente1 = new Cliente();

// System.out.println(contaCorrente); // System.out.println(contaPoupanca);

    cliente.setNome("Eduardo");
    contaCorrente.setTitular(cliente);
    contaCorrente.deposita(12000.0);


    cliente1.setNome("Enrique");
    contaPoupanca.deposita(7080.99);
    contaPoupanca.setTitular(cliente1);

    System.out.println(contaCorrente);
    System.out.println(contaPoupanca);

// println(contaCorrente); // println(contaPoupanca); // println(cliente);

}

// static void println() { // } // static void println(int a) { // } // static void println(boolean valor) { // } // static void println(Object conta) { // }

}

System.out.println(contaCorrente); RESULTADO Conta Corrente - Títular da conta: *br.com.bytebank.banco.modelos.Cliente@1b6d3586*** Saldo em conta: R$ 12000.0 Agência: 321 Número: 10

Como faço para que o nome do títular apareça no lugar do package?? Preciso implementar o get e set na conta corrente também para ela se atualizar quando eu utilizar o setTitular()?? Se sim eu deixo ela como abstract na Class Conta? Ou como devo fazer?

2 respostas
solução!

Opa, e aí, Eduardo! Tranquilo?

Cara, você já sobrescreveu o toString() na classe Cliente?

Na classe Conta, dentro do seu toString() você chama o 'this.titular'. É necessário que na classe 'Cliente' exista uma sobrescrita do método 'toString()' retornando o valor que você quer printar.

Valeu Felipe, era isso mesmo que estava faltando...

Muito obrigado pela dica!