O Projeto Conta Bancária será o nosso Projeto Guia no aprendizado dos Conceitos e aplicação da Orientação a Objetos. Todo o código que implementarmos no projeto Conta Bancária servirá de base para a construção do Projeto Java, que marca o final do Bloco 01. O Projeto Conta Bancária receberá novas funcionalidades a cada nova Sessão e depois que você adquirir e praticar os novos conhecimentos, você poderá aplicar no Projeto Java. Veja o Diagrama de Classes do Projeto Conta Bancária completo na figura abaixo:
classDiagram
class Conta {
<<Abstract>>
- numero : int
- agencia : int
- tipo : int
- titular : String
- saldo : float
+ int getNumero()
+ int getAgencia()
+ int getTipo()
+ String getTitular()
+ float getSaldo()
+ void setNumero(int numero)
+ void setAgencia(int agencia)
+ void setTipo(int tipo)
+ void setTitular(String titular)
+ void setSaldo(float saldo)
+ boolean sacar(float valor)
+ void depositar(float valor)
+ void visualizar()
}
class ContaCorrente {
- limite : float
+ float getLimite()
+ void setLimite(float limite)
+ boolean sacar(float valor)
+ void visualizar()
}
class ContaPoupanca {
- aniversario : int
+ int getAniversario()
+ void setAniversario(int aniversario)
+ void visualizar()
}
class ContaRepository{
<< Interface >>
+ void procurarPorNumero(int numero)
+ void listarTodas()
+ void cadastrar(Conta conta)
+ void atualizar(Conta conta)
+ void deletar(int numero)
+ void sacar(int numero, float valor)
+ void depositar(int numero, float valor)
+ void transferir(int numeroOrigem, int numeroDestino, float valor)
}
class ContaController{
+ void procurarPorNumero(int numero)
+ void listarTodas()
+ void cadastrar(Conta conta)
+ void atualizar(Conta conta)
+ void deletar(int numero)
+ void sacar(int numero, float valor)
+ void depositar(int numero, float valor)
+ void transferir(int numeroOrigem, int numeroDestino, float valor)
+ int gerarNumero()
+ Conta buscarNaCollection(int numero)
}
Conta <|-- ContaCorrente
Conta <|-- ContaPoupanca
Conta <.. ContaRepository
ContaRepository <|.. ContaController
O Projeto será composto pelas seguintes Classes e Interfaces:
| Classe/Interface | Descrição |
|---|---|
| Menu | Classe principal, que conterá o Método main, responsável por criar o Menu inicial da aplicação com todas as funcionalidades do sistema. |
| Cores | Classe utilitária, que possui a função de aplicar cores ao Menu. |
| Conta | Classe responsável por definir o Objeto Conta genérico. |
| ContaCorrente | Classe responsável por definir o Objeto Conta Corrente. |
| ContaPoupanca | Classe responsável por definir o Objeto Conta Poupanca. |
| ContaRepository | Interface responsável por encapsular os Métodos que serão utilizados no Menu da aplicação |
| ContaController | Classe responsável por implementar a Interface ContaRepository. |
Antes de começar a criar as nossas Classes, vamos criar o nosso Projeto no Eclipse/STS.
- Abra o Eclipse/STS
- Clique no menu File e clique na opção New 🡪 Java Project, como mostra a animação abaixo:
- Será aberta a janela New Java Project.
- Vamos configurar o nome do projeto (Project name), como conta, conforme a figura abaixo:
-
Clique no botão Finish para concluir.
-
Aguarde a conclusão do processo de criação do projeto. Você pode acompanhar o progresso no canto direito inferior do STS, conforme mostra a figura abaixo:
- A estrutura do nosso projeto ficará semelhante a imagem abaixo:
Na Source Folder Principal (src), vamos criar o pacote principal da nossa aplicação (conta), onde todo o nosso código será desenvolvido. Na figura abaixo, podemos visualizar o pacote:
- No lado esquerdo superior, na Guia Package explorer, clique com o botão direito do mouse sobre a Source Folder Principal (src) e clique na opção New 🡪 Package, como mostra a animação abaixo:
- Na janela New Java Package, no item Name, informe o nome da Package: conta, como mostra a figura abaixo:
- Clique no botão Finish para concluir.
A estrutura de pacotes da aplicação ficará igual a figura abaixo:
Agora vamos criar a Classe principal que chamaremos de Menu.
- Clique com o botão direito do mouse sobre o Pacote conta e na sequência, clique na opção New 🡪 Class, como mostra a animação abaixo:
- Na janela New Java Class, no item Name, digite o nome da Classe (Menu) e marque a opção public static void main(String[] args), como mostra a figura abaixo:
- Clique no botão Finish para concluir.
- Na imagem abaixo, vemos o código inicial da Classe Menu:
Código fonte: Menu.java
Vamos implementar o código da Classe Menu - versão monocromática (sem as cores). Vamos analisar o código abaixo:
Linha 3: Importamos o Pacote java.util.Scanner, que permite a entrada de dados via teclado.
Linha 9: Instanciamos um Objeto da Classe Scanner, chamado leia, que será responsável por efetuar a entrada de dados via teclado.
Linha 11: Criamos a variável do tipo int, chamada opcao, que receberá o número da opção do Menu, que deverá ser executada.
Linha 13: Iniciamos a estrutura de repetição while, responsável por gerar o Menu e repeti-lo na tela. Na condição do menu, inserimos a opção true para que o loop seja infinito, desta forma, o loop será finalizado apenas se a opção 9 for digitada.
Linhas 15 a 33: Construímos a parte visual do nosso Menu. Os espaços em branco antes e depois dos itens do menu e as linhas me branco não foram construídas com tabulações (tecla Tab do teclado) e sim com espaços em branco simples.
Linha 35: Através do Objeto leia, utilizamos o Método nextInt() para ler um número inteiro e armazenar na variável opcao.
Linhas 36 a 41: Através do Laço Condicional if, verificamos se o valor da variável opcao é 9. Caso seja, será exibida a mensagem de saída (linha 37), o Método sobre() será executado, exibindo os seus dados pessoais (linha 38), o Objeto leia será finalizado (linha 39) e o programa será finalizado (linha 40).
Linhas 43 a 79: Através do condicional case, checaremos se o valor da variável opcao está no intervalo entre 1 e 8. Conforme o numero, será exibida uma mensagem diferente na tela. Caso o numero esteja fora do intervalo 1 a 8 e seja diferente de 9, será exibida na tela a mensagem Opção Inválida!
Linhas 83 a 89: Implementação do Método Sobre(), que exibe na tela os dados da pessoa desenvolvedora. Substitua as informações contidas nas linhas 86 e 87 pelos seus dados pessoais (Nome, E-mail e Link do Github).
![]() |
ALERTA DE BSM: Mantenha a Atenção aos Detalhes ao criar o Método sobre(). Não esqueça de inserir os seus dados pessoais no Método Sobre(). |
|---|
Execute o projeto clicando no botão 
O visual do Menu deve ser semelhante ao da figura abaixo:
Ao digitar a opção 9, será exibida uma mensagem semelhante a imagem abaixo, contendo os seus dados pessoais.
O código completo, você confere abaixo:
package conta;
import java.util.Scanner;
public class Menu {
public static void main(String[] args) {
Scanner leia = new Scanner(System.in);
int opcao;
while (true) {
System.out.println("*****************************************************");
System.out.println(" ");
System.out.println(" BANCO DO BRAZIL COM Z ");
System.out.println(" ");
System.out.println("*****************************************************");
System.out.println(" ");
System.out.println(" 1 - Criar Conta ");
System.out.println(" 2 - Listar todas as Contas ");
System.out.println(" 3 - Buscar Conta por Numero ");
System.out.println(" 4 - Atualizar Dados da Conta ");
System.out.println(" 5 - Apagar Conta ");
System.out.println(" 6 - Sacar ");
System.out.println(" 7 - Depositar ");
System.out.println(" 8 - Transferir valores entre Contas ");
System.out.println(" 9 - Sair ");
System.out.println(" ");
System.out.println("*****************************************************");
System.out.println("Entre com a opção desejada: ");
System.out.println(" ");
opcao = leia.nextInt();
if (opcao == 9) {
System.out.println("\nBanco do Brazil com Z - O seu Futuro começa aqui!");
sobre();
leia.close();
System.exit(0);
}
switch (opcao) {
case 1:
System.out.println("Criar Conta\n\n");
break;
case 2:
System.out.println("Listar todas as Contas\n\n");
break;
case 3:
System.out.println("Consultar dados da Conta - por número\n\n");
break;
case 4:
System.out.println("Atualizar dados da Conta\n\n");
break;
case 5:
System.out.println("Apagar a Conta\n\n");
break;
case 6:
System.out.println("Saque\n\n");
break;
case 7:
System.out.println("Depósito\n\n");
break;
case 8:
System.out.println("Transferência entre Contas\n\n");
break;
default:
System.out.println("\nOpção Inválida!\n");
break;
}
}
}
public static void sobre() {
System.out.println("\n*********************************************************");
System.out.println("Projeto Desenvolvido por: ");
System.out.println("Generation Brasil - generation@generation.org");
System.out.println("github.com/conteudoGeneration");
System.out.println("*********************************************************");
}
}




















Voltar