/dio-banco-digital-lombok

Criando um Banco Digital. Utilizando Programação Orientado á Objeto, Maven e Lombok

Primary LanguageJava

Projeto de Sistema Bancário em Java

Este projeto foi desenvolvido como parte de um desafio para criar uma solução orientada a objetos em Java para simular um sistema bancário. O cenário consiste em um banco que oferece aos seus clientes dois tipos de contas: corrente e poupança, com funcionalidades básicas de depósito, saque e transferência entre contas da mesma instituição.

Conceitos Utilizados

Abstração

A abstração permite concentrar-se nos aspectos essenciais de um domínio, ignorando características menos importantes ou acidentais. Neste contexto, objetos são abstrações de entidades existentes no domínio em questão.

Encapsulamento

Encapsular significa esconder a implementação dos objetos, criando assim interfaces de uso mais concisas e fáceis de entender. O encapsulamento favorece principalmente dois aspectos de um sistema: a manutenção e a evolução.

Herança

A herança permite que você defina uma classe filha que reutiliza (herda), estende ou modifica o comportamento de uma classe pai. A classe cujos membros são herdados é chamada de classe base. A classe que herda os membros da classe base é chamada de classe derivada.

Polimorfismo

O polimorfismo é a capacidade de um objeto poder ser referenciado de várias formas, ou seja, é a capacidade de tratar objetos criados a partir das classes específicas como objetos de uma classe genérica. Cuidado, polimorfismo não quer dizer que o objeto fica se transformando, muito pelo contrário, um objeto nasce de um tipo e morre daquele tipo, o que pode mudar é a maneira como nos referimos a ele.

Lombok

O Lombok é uma biblioteca Java que automatiza a geração de métodos boilerplate, como getters, setters, construtores e muito mais. Com anotações simples, você pode reduzir drasticamente a quantidade de código repetitivo em seus projetos Java.

Maven

O Maven é uma ferramenta de automação de construção e gerenciamento de dependências usada principalmente para projetos Java. Ele simplifica e padroniza o processo de compilação, teste e distribuição de aplicativos Java, além de facilitar a configuração e gerenciamento de dependências do projeto.