Olá… em um exercicio que trouxe pra fazer em casa, preciso implementar um metodo que me retorna na classe Teste, o saldo de duas contas, uma conta corrente e conta poupanca, implementei em uma classe separada, com o nome CalculoValorEmContas, mas ao chama-lo na classe Teste, não esta retornando o valor do saldo das duas contas. o que estou fazendo de errado ?
a classe banco :
public class Banco {
private String nome;
private int numero ;
/**
* @param nome
* @param numero
*/
public Banco(String nome, int numero) {
this.nome = nome;
this.numero = numero;
}
/**
* @return the nome
*/
public String getNome() {
return nome;
}
/**
* @param nome the nome to set
*/
public void setNome(String nome) {
this.nome = nome;
}
/**
* @return the numero
*/
public int getNumero() {
return numero;
}
/**
* @param numero the numero to set
*/
public void setNumero(int num) {
numero = num ;
}
public void imprimeDados() {
System.out.println("Nome do Banco: " + nome + "\tNumero do banco: "+numero);
}
}
a classe agencia
/**
*
*/
/**
* @author admin
*
*/
public class Agencia {
private String numero;
private Banco banco;
/**
* @param numero
* @param banco
*/
public Agencia(String num, Banco bc) {
numero = num;
banco = bc;
}
/**
* @return the banco
*/
public Banco getBanco() {
return banco;
}
/**
* @return the numero agencia
*/
public String getNumero() {
return numero;
}
/**
* @param banco the banco to set
*/
public void setBanco(Banco b) {
banco = b;
}
/**
* @param numero the numero to set
*/
public void setNumero(String num) {
numero = num;
}
// imprime todos os bancos da classe
public void imprimeDados() {
System.out.println("Numero Agencia : " +numero);
banco.imprimeDados();
}
}
a classe conta:
public class Conta {
protected double saldo ;
private String numero;
private Cliente titular;
private Agencia agencia;
private double acumuladorIFN;
private static double taxaIFN = 0.038;
private double limite;
public Conta(double saldoInicial, String num, Cliente tit, Agencia ag) {
saldo = saldoInicial;
numero = num;
titular = tit;
agencia = ag;
}
public Conta(String num, Cliente tit, Agencia ag) {
this(0, num, tit, ag);
}
public void saque(double valor) {
imprimeSaldoAnterior();
System.out.println("AGUARDE.. PROCESSANDO");
System.out.println("Solicitado saque valor de R$ "+valor + " conta " +numero);
if ( valor > 0) {
if (saldo >= valor) {
saldo -= valor;
acumularIFN(valor);
} else
System.out.println("Saldo Disponivel para movimentação é R$ "+ (this.saldo -= valor));
} else {
System.out.println("o valor do saque deve ser positivo");
}
}
public void valorDoSaqueEfetuado (){
import javax.swing.plaf.SliderUI;
/*
* adicionar o atributo data aniversario a clase pou como string e encapsular
* criar construtor classe poupanca passando parametro data de anive e demais
* override dos metodos imprime dados , imprimir tmb data de aniversario e tipo de
* conta no cabecalho
*
*/
a classe contaEspecial :
import java.io.ObjectInputStream.GetField;
public class ContaEspecial extends Conta {
private double limite;
public ContaEspecial(double saldoInicial, String num, Cliente tit, Agencia ag, double limite) {
super(saldoInicial, num, tit, ag);
this.limite = limite;
}
public double getLimite (){
return limite;
}
public void setLimite(double limite) {
this.limite = limite;
}
public ContaEspecial (String num, Cliente tit, Agencia ag, double limite){
this(0.0, num, tit, ag, limite); // chama construtor acima e dps da classe mae
}
public void imprimeDados() {
super.imprimeDados(); // passa a instancia correte para baixo
System.out.println(this);
}
public String toString() {
return " ## Limite Conta Especial ## : " +limite;
}
public void saque (double valor) {
System.out.println("Solicitado saque valor de R$ "+valor);
if ( valor > 0) {
if (saldo + limite >= valor ) { // saldo tem q estar protected
saldo -=valor;
acumularIFN(valor);
} else {
System.out.println("saldo Insuficiente");
}
} else {
System.out.println("Valor Invalido");
}
}
public double getValorEmContas() {
return getSaldo();
}
}
a classe contaPoupanca :
import javax.swing.plaf.SliderUI;
/*
* adicionar o atributo data aniversario a clase pou como string e encapsular
* criar construtor classe poupanca passando parametro data de anive e demais
* override dos metodos imprime dados , imprimir tmb data de aniversario e tipo de
* conta no cabecalho
*
*/
public class ContaPoupanca extends Conta{
private String dataAniversario ;
private double limite;
public ContaPoupanca (double saldoInicial, String num, Cliente tit, Agencia ag, String dataAniversario) {
super(saldoInicial, num, tit, ag);
this.dataAniversario = dataAniversario ;
}
public ContaPoupanca (String num, Cliente tit, Agencia ag, String dataAniversario) {
this(0.0, num, tit, ag, dataAniversario);
}
/**
* @return the dataAniversario
*/
public String getDataAniversario() {
return dataAniversario;
}
public void setDataAniversario(String dataAniversario) {
super.imprimeDados();
System.out.println("Conta poupanca data aniversario é: " +dataAniversario);
}
public void imprimeSaldo(){
super.imprimeSaldo();
System.out.println(this);
}
public void imprimeDados(){
super.imprimeDados();
System.out.println(this); // passa instancia corrente para to abaixao
}
public String toString() {
return "-------- Conta poupanca : data aniversário : dia"+ dataAniversario;
}
public double getValorEmContas() {
return getSaldo();
}
}
a classe cliente:
public class Cliente {
private String nome;
private String cpf;
/**
* @param nome
* @param cpf
*/
public Cliente(String nome, String cpf) {
this.setCpf(cpf);
this.setNome(nome);
}
/**
* @return the cpf
*/
public String getCpf() {
return this.cpf;
}
/**
* @return the nome
*/
public String getNome() {
return this.nome;
}
/**
* @param cpf the cpf to set
*/
public void setCpf(String cpf) {
this.cpf = cpf;
}
/**
* @param nome the nome to set
*/
public void setNome(String nome) {
this.nome = nome;
}
public void imprimeDados() {
// System.out.println("==================================");
System.out.println("Nome do Cliente: " +this.getNome());
System.out.println("CPF: " +this.getCpf());
// System.out.println("==================================");
}
}
a classe calculoValorEmConta
public class CalculoValorEmContas {
private double totalValorEmContas ;
public void acumulaValorEmContas(Conta conta) {
totalValorEmContas += conta.getSaldo();
}
public void imprimeValorEmContas() {
System.out.println("\ntotal de valor em contas é " + totalValorEmContas );
}
}
e por úiltimo, a classe Teste
/*
* alterar metodo main para criar 2 contas especiais e 1 poupanca
* realizar saque na 1a. conta especial, valor execer o saldo mas nao ultrapassar o limite
* realiuar saque na 2a. conta especial, valor ultraasse o saldo e limite
* realizar saque na poup. para exceder o saldo
* imprimir os dados.
*
*/
public class TestaHeranca {
public static void main(String[] args) {
Banco banco = new Banco("Banco do Brasil", 250);
Agencia ag1 = new Agencia("001", banco);
Agencia ag2 = new Agencia("002", banco);
Agencia ag3 = new Agencia("003", banco);
Agencia ag4 = new Agencia("004", banco);
Cliente cliente0 = new Cliente("Conta Cliente Poupanca", "000.000.000-00");
Cliente cliente1 = new Cliente("Marcelo Paulo", "887.457.325-47");
Cliente cliente2 = new Cliente("Patricia Cinti", "145.875.626-17");
Cliente cliente3 = new Cliente("Adelina Rebello", "560.485.861-57");
Conta conta = new Conta(500, "00.1452.20", cliente0, ag1);
System.out.println();
Conta contaEspecial1 = new Conta(5000, "14.956-6", cliente1, ag2);
contaEspecial1.saque(8000);
contaEspecial1.imprimeDados();
System.out.println();
Conta contaEspecial2 = new Conta(20000, "17.952-7", cliente2, ag4);
contaEspecial2.imprimeSaldoAnterior();
contaEspecial2.saque(38000);
contaEspecial2.imprimeDados();
contaEspecial2.imprimeSaldo();
System.out.println();
ContaEspecial contaEsp2 = null;
contaEsp2 = new ContaEspecial(10000, "17.952-7", cliente2, ag4, 20000);
contaEsp2.imprimeSaldoAnterior();
contaEsp2.saque(42000);
contaEsp2.valorDoSaqueEfetuado();
contaEsp2.imprimeDados();
contaEsp2.imprimeSaldo();
System.out.println();
ContaPoupanca contaPoup = null;
contaPoup = new ContaPoupanca(20000, "00033-0", cliente2, ag3, " 14");
contaPoup.imprimeDados();
contaPoup.saque(8000);
contaPoup.imprimeSaldo();
contaPoup.deposito(12500);
contaPoup.imprimeSaldoAnterior();
CalculoValorEmContas calcular = new CalculoValorEmContas();
calcular.imprimeValorEmContas();
}
}
e esta é a saida do metodo imprimeValorEmContas
total de valor em contas é 0.0