package br.com.bytebank.banco.modelo;
public class Conta {
protected double saldo;
private int agencia;
private int numero;
private Cliente titular;
private static int total = 0;
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 void deposita(double valor) {
this.saldo = this.saldo + valor;
}
public void saca(double valor) throws SaldoInsuficienteException {
if (this.saldo < valor) {
throw new SaldoInsuficienteException("Saldo: " +this.saldo +" Valor: " +valor);
}
this.saldo -= 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;
}
@Override
public String toString() {
return "Número: " + this.numero + ", Agência: " +this.agencia;
}
@Override
public boolean equals(Object ref) {
Conta outra = (Conta)ref;
if(this.agencia != outra.agencia) {
return false;
}
if(this.numero != outra.numero) {
return false;
}
return true;
}
}
package br.com.bytebank.banco.modelo;
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();
}
}
package br.com.bytebank.banco.teste.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Vector;
import br.com.bytebank.banco.modelo.Conta;
import br.com.bytebank.banco.modelo.ContaCorrente;
public class TesteArrayList {
public static void main(String[] args) {
ArrayList<Conta> lista = new ArrayList<Conta>();
Conta cc = new ContaCorrente(11, 0022);
lista.add(cc);
Conta cc2 = new ContaCorrente(11, 33);
lista.add(cc2);
System.out.println("Tamanho: " + lista.size());
Conta ref = lista.get(0);
System.out.println(ref.getNumero());
lista.remove(0);
System.out.println("Tamanho: " + lista.size());
Conta cc3 = new ContaCorrente(22, 11);
lista.add(cc3);
Conta cc4 = new ContaCorrente(22, 22);
lista.add(cc4);
System.out.println("Tamanho: " + lista.size());
for(int i = 0; i<lista.size(); i++) {
Object oRef = lista.get(i);
System.out.println(oRef);
}
System.out.println("---------------------");
for(Conta oRef : lista) {
System.out.println(oRef);
}
}
}
Cleiton, seguem os códigos das classes.