Skip to content

Projeto desenvolvido para o desafio o "Criando um Banco Digital com Java e Orientação a Objetos"

License

Notifications You must be signed in to change notification settings

helenformighieri/banco-digital

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banco Digital

Aplicação desenvolvida para fixar os conhecimento sobre OO(Orientação a Objeto). Também apliquei conhecimentos sobre List(Generics) e Stream API para facilitar a leitura e organização do código.

Instalação:

  1. Certifique-se de ter o Java 17 instalado.
  2. Clone o repositório:
    git clone https://github.com/helenformighieri/banco-digital.git
  3. Navegue até o diretório do projeto:
    cd banco-digital
    

Uso

Aqui estão alguns exemplos de como utilizar a aplicação:

public class Main {

    public static void main(String[] args) {
        Banco banco = criarBanco("LuaBank");
        Agencia agencia = criarAgencia(banco, "Rua de Crystal, 123");

        Cliente cliente1 = criarCliente("Sol Maria", banco);
        Cliente cliente2 = criarCliente("Lua Maria", banco);

        ContaCorrente cc = criarContaCorrente(cliente1);
        ContaPoupanca poupanca = criarContaPoupanca(cliente1);

        realizarOperacoesBancarias(cc, poupanca);

        atualizarDadosCliente(cliente1, "Lua Maria");
        consultarSaldoTotal(cliente1);

        realizarTransacao(banco, cc, poupanca, 100);

        agencia.buscarContaPorId(1);
        agencia.removerConta(cc);

        agencia.adicionarConta(cc);
        agencia.adicionarConta(poupanca);

        agencia.listaDeContas();

        Cartao cartao = new Cartao("1234 5678 9012 3456", "12/25", "123", 5000, 1000);
        realizarOperacoesCartao(cartao);
    }

    private static Banco criarBanco(String nome) {
        Banco banco = new Banco();
        banco.setNome(nome);
        return banco;
    }

    private static Agencia criarAgencia(Banco banco, String endereco) {
        Agencia agencia = new Agencia(new ArrayList<>(), 1, banco, endereco);
        banco.setAgencias(List.of(agencia));
        return agencia;
    }

    private static Cliente criarCliente(String nome, Banco banco) {
        Cliente cliente = new Cliente(new ArrayList<>());
        cliente.setNome(nome);
        banco.adicionarCliente(cliente);
        return cliente;
    }

    private static ContaCorrente criarContaCorrente(Cliente cliente) {
        ContaCorrente cc = new ContaCorrente(cliente);
        cliente.adicionarConta(cc);
        return cc;
    }

    private static ContaPoupanca criarContaPoupanca(Cliente cliente) {
        ContaPoupanca poupanca = new ContaPoupanca(cliente);
        cliente.adicionarConta(poupanca);
        return poupanca;
    }

    private static void realizarOperacoesBancarias(ContaCorrente cc, ContaPoupanca poupanca) {
        cc.depositar(1000);
        cc.sacar(200);
        cc.transferir(300, poupanca);
        cc.consultarExtrato();
        poupanca.consultarExtrato();
    }

    private static void atualizarDadosCliente(Cliente cliente, String novoNome) {
        cliente.atualizarDados(novoNome);
    }

    private static void consultarSaldoTotal(Cliente cliente) {
        double saldoTotal = cliente.consultarSaldoTotal();
        System.out.println("Saldo total: " + saldoTotal);
    }

    private static void realizarTransacao(Banco banco, ContaCorrente cc, ContaPoupanca poupanca, double valor) {
        Transacao transacao = new Transacao(1, "Corrente", new Date(), cc.getId(), poupanca.getId(), valor, banco);
        transacao.executarTransacao();
        cc.consultarExtrato();
        poupanca.consultarExtrato();
        transacao.estornarTransacao();
        cc.consultarExtrato();
        poupanca.consultarExtrato();
    }

    private static void realizarOperacoesCartao(Cartao cartao) {
        cartao.realizarCompra(200);
        cartao.consultarSaldo();
        cartao.pagarFatura(300);
        cartao.consultarSaldo();
    }
}

Créditos

  • Desenvolvido por Helen Diana Formigheri

About

Projeto desenvolvido para o desafio o "Criando um Banco Digital com Java e Orientação a Objetos"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages