Então, comecei aqui meu Banco.
O projeto segue o que o Dead Devil falou.
Então vamos as classes:
Main.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package bancojava;
/**
*
* @author Uriel
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Gerente gerente = new Gerente("Ulysses");
Atendente atendente = new Atendente("Atendente1", gerente);
Cliente cliente = new Cliente("Uriel Juliatti", 900);
// O cliente tem que ter o nome e o salário. Salário será utilizado para verificar se ele pode ou não ter
// conta especial.
System.out.println(atendente.getNome() + " está recebendo os dados do cliente de nome: " + cliente.getNome() + " e passando para o Gerente de nome: " + gerente.getNome());
cliente.requisitaConta(atendente);
}
}
Funcionario.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package bancojava;
/**
*
* @author Uriel
*/
public class Funcionario {
private String nome;
private String contracacao;
private boolean ativo;
public Funcionario(String nome)
{
this.nome = nome;
}
/**
* @return the nome
*/
public String getNome() {
return nome;
}
/**
* @param nome the nome to set
*/
public void setNome(String nome) {
this.nome = nome;
}
/**
* @return the ativo
*/
public boolean isAtivo() {
return ativo;
}
/**
* @param ativo the ativo to set
*/
public void setAtivo(boolean ativo) {
this.ativo = ativo;
}
}
Atendente.java
package bancojava;
/**
*
* @author Uriel
*/
public class Atendente extends Funcionario {
// Cada atendente tem um gerente;
private Gerente gerente;
private Cliente cliente;
public static int contaFuncionario;
public Atendente(String nome, Gerente gerente)
{
super(nome);
contaFuncionario++;
this.gerente = gerente;
}
public void solicita(Cliente cliente)
{
if(getGerente().verificaConta(cliente))
addConta(cliente, 1); // especial
else
addConta(cliente, 0); // normal
}
private void addConta(Cliente cliente, int tipo)
{
System.out.println("O salario do cliente é: "+cliente.getSalario() + " e o tipo de conta é: " + tipo);
cliente.addConta(tipo);
}
/**
* @return the gerente
*/
public Gerente getGerente() {
return gerente;
}
}
Cliente.java
package bancojava;
/**
*
* @author Uriel
*/
public class Cliente {
private Conta conta;
private String nome;
private double salario;
public Cliente(String nome, double salario)
{
this.nome = nome;
this.salario = salario;
}
public void addConta(int tipo_conta)
{
conta = new Conta(tipo_conta);
}
public void requisitaConta(Atendente atendente)
{
atendente.solicita(this);
}
/**
* @return the salario
*/
public double getSalario() {
return salario;
}
/**
* @return the conta
*/
public Conta getConta() {
return conta;
}
/**
* @return the nome
*/
public String getNome() {
return nome;
}
}
Conta.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package bancojava;
/**
*
* @author Uriel
*/
public class Conta {
// 0 para normal e 1 para especial
private int tipo_conta;
// Média do valor pra uma conta especial, o limite é 1000 reais;
public static double rate = 1000;
public Conta(int tipo_conta)
{
if(!(tipo_conta > 1))
this.tipo_conta = tipo_conta;
}
/**
* @return the tipo_conta
*/
public int getTipo_conta() {
if(tipo_conta == 0)
System.out.println("A conta é simples. ");
else
System.out.println("A conta é especial. ");
return tipo_conta;
}
/**
* @param tipo_conta the tipo_conta to set
*/
public void setTipo_conta(int tipo_conta) {
this.tipo_conta = tipo_conta;
}
}
Gerente.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package bancojava;
/**
*
* @author Uriel
*/
public class Gerente extends Funcionario{
private String setor;
public Gerente(String nome)
{
super(nome);
}
public boolean verificaConta(Cliente cliente)
{
boolean verificacao = false;
if(cliente.getSalario() >= Conta.rate)
verificacao = true;
else
verificacao = false;
System.out.println("Conta sendo verificada pelo Gerente..");
System.out.println("Cliente pode abrir conta especial? " + verificacao);
return verificacao;
}
}
Está rodando certinho. Se você setar o salário do cliente para 1000 ou + ele se torna cliente especial.
Está muito simples e cru, tem pouco tempo que estou na OO.
Gostaria de críticas ou sugestões!
Além do que gostaria de organizar mais o projeto, implementar captura de dados por teclado, etc..
Alguma sugestão?!
Abraço!!!