/DIO-BancoDigital

Resolução do Desafio "Criando um Banco Digital com Java e Orientação a Objetos"

Primary LanguageJava

DIO-BancoDigital

Resolução do Desafio "Criando um Banco Digital com Java e Orientação a Objetos"

Repositório do desafio "DIO - Criando um Banco Digital com Java e Orientação a Objetos" por Venilton Falvo Jr.

Domínio / Problema

Considerando nosso conhecimento no domínio bancário, iremos abstrair uma solução Orientada a Objetos em Java.

Para isso, vamos interpretar o seguinte cenário: “Um banco oferece aos seus clientes dois tipos de contas (corrente e poupança), as quais possuem as funcionalidades de depósito, saque e transferência (entre contas da própria instituição).”

---
title: Diagrama de classes - Inicial
---
classDiagram

IConta ..|> Conta
Conta --|> ContaCorrente: implementa
Conta --|> ContaPoupanca: implementa
Cliente "1" --* "1" Conta
Conta "1..*" --o "1" Banco

class Banco{
-String nome
-List~Conta~ contas
}

class Cliente{
-String nome
}

class Conta{
-int AGENCIA_PADRAO$ = 1
-int SEQUENCIAL$

#int agencia
#int numero
#double saldo
#Cliente cliente

+Conta(Cliente cliente)
+sacar(double valor)
+depositar(double valor)
+transferir(double valor, IConta contaDestino)
#imprimirInfosComuns()
}

class ContaCorrente{
+ContaCorrente(Cliente cliente)
+imprimirExtrato()
}

class ContaPoupanca{
+ContaPoupanca(Cliente cliente)
+imprimirExtrato()
}

class IConta{
<<interface>>
sacar(double valor)
depositar(double valor)
transferir(double valor, Conta contaDestino)
exibirResumo()
}
Loading

Desafio de Projeto

Agora é a sua hora de brilhar, use todo seu conhecimento em Java e Orientação a Objetos para evoluir o projeto criado nesta aula.

Para isso, seguem algumas sugestões:

  • Use todo o seu conhecimento para estender o domínio, incluindo novas classes, atributos e/ou métodos;
  • Incluir o Lombok ao projeto para reduzir sua verbosidade de código.
---
title: Diagrama de classes - Final
---
classDiagram

IConta ..|> Conta
Conta --|> ContaCorrente: implementa
Conta --|> ContaPoupanca: implementa
Cliente "1" --* "1" Conta
Conta "1..*" --o "1" Banco

class Banco{
-int codigoBanco
-String nomeBanco
-List~Conta~ contas
}

class Cliente{
-String primeiroNome
-String sobrenome
}

class Conta{
-int AGENCIA_PADRAO = 1$
-long SEQUENCIAL$

#int agencia
#long numero
#double saldo
#char tipoConta
#Cliente cliente


+Conta(Cliente cliente, char tipoConta)
+sacar(double valor)
+depositar(double valor)
+transferir(double valor, Conta contaDestino)
#exibirDadosDaConta()
}

class ContaCorrente{
+ContaCorrente(Cliente cliente)
+exibirResumo()
}

class ContaPoupanca{
+ContaPoupanca(Cliente cliente)
+exibirResumo()
}

class IConta{
<<interface>>
sacar(double valor)
depositar(double valor)
transferir(double valor, Conta contaDestino)
exibirResumo()
}
Loading