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?