1
resposta

Exercícios de herança e polimorfismo

Boa tarde resolvi postar aqui o que eu andei fazendo, gostaria de a opinião de vocês sobre o código.

public class Banco {
    private static ArrayList<Conta> listaContas = new ArrayList<>();
    private static ArrayList<Funcionario> listaFuncionarios = new ArrayList<>();
    private static ArrayList<Cliente> listaClientes = new ArrayList<>();
    private String stringContas = new String();
    private String stringFuncionarios = new String();
    private String stringClientes = new String();

    public static ArrayList<Conta> getListaContas() {
        return listaContas;
    }

    public static void setConta(Conta conta) {
        Banco.listaContas.add(conta);
    }

    public static ArrayList<Funcionario> getListaFuncionarios() {
        return listaFuncionarios;
    }

    public static void setFuncionario(Funcionario funcionarios) {
        Banco.listaFuncionarios.add(funcionarios);
    }

    public static ArrayList<Cliente> getListaClientes() {
        return listaClientes;
    }

    public static void setCliente(Cliente cliente) {
        Banco.listaClientes.add(cliente);
    }
public class Funcionario extends Pessoa implements FuncionarioBanco {
    private String horaEntrada;
    private String horaSaida;
    private Banco banco;

    public Funcionario() {
    }

    public String getHoraEntrada() {
        return horaEntrada;
    }

    public void setHoraEntrada(String horaEntrada) {
        this.horaEntrada = horaEntrada;
    }

    public String getHoraSaida() {
        return horaSaida;
    }

    public void setHoraSaida(String horaSaida) {
        this.horaSaida = horaSaida;
    }

    @Override
    public void registraEntrada(String entrada) {
        banco.registraPonto(entrada, this.getHoraSaida(), this.getNome());

    }

    @Override
    public void registraSaida(String saida) {
        banco.registraPonto(this.getHoraEntrada(), saida, this.getNome());
    }

    @Override
    public void cadastrarConta(Conta conta) {
        banco.setConta(conta);
    }
}

Interfaces:


public interface FuncionarioBanco {
    public abstract void cadastrarConta(Conta conta);

    public void registraEntrada(String entrada);

    public void registraSaida(String saida);

}
public interface AdministradorBanco extends FuncionarioBanco{

    public abstract double totalDinheiroEmBanco();

    public abstract ArrayList<String> nomesClientes(); 

    public abstract ArrayList<Conta> contasAtivas();

    public abstract ArrayList<Funcionario> funcionariosCadastrados();

    public abstract void cadastrarFuncionarios(Funcionario funcionario);

    public abstract void mudaSituacaoConta(Boolean situacao, String nome);

    public abstract void cadastrarConta(Conta conta);


}

Classe main

public class AcessaMazeBank {
    static String contasAtivas = new String();
    static String StringFuncionarios = new String();

    public static void main(String[] args) {
        DateTimeFormatter.ofPattern("dd/MM/YYYY-HH:mm:ss");
        Cliente mikael = new Cliente();
        mikael.setCpf("123.234.234-56");
        mikael.setNome("Mikael");
        mikael.setTelefone("(51)-99342-2225");

        Cliente joao = new Cliente();
        joao.setCpf("999.777.668-00");
        joao.setNome("João");
        joao.setTelefone("(51)-86755-3444");

        Funcionario maria = new Funcionario();
        maria.setNome("Maria");
        maria.setCpf("877.678.345-09");
        maria.setTelefone("(32)98765-4567");
        maria.setHoraEntrada(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd/MM/YYYY-HH:mm:ss")));
        maria.setHoraSaida(LocalDateTime.now().plusHours(9).format(DateTimeFormatter.ofPattern("dd/MM/YYYY-HH:mm:ss")));

        Funcionario jose = new Funcionario();
        jose.setNome("Jose");
        jose.setCpf("234.128.005-29");
        jose.setTelefone("(22)94565-4567");
        jose.setHoraEntrada(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd/MM/YYYY-HH:mm:ss")));
        jose.setHoraSaida(LocalDateTime.now().plusHours(6).format(DateTimeFormatter.ofPattern("dd/MM/YYYY-HH:mm:ss")));

        Funcionario alfredo = new Funcionario();
        alfredo.setNome("Alfredo");
        alfredo.setCpf("999.332.995-33");
        alfredo.setTelefone("(22)94565-4567");
        alfredo.setHoraEntrada(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd/MM/YYYY-HH:mm:ss")));
        alfredo.setHoraSaida(LocalDateTime.now().plusHours(4).format(DateTimeFormatter.ofPattern("dd/MM/YYYY-HH:mm:ss")));

        ContaCorrente contaMikael = new ContaCorrente(123, 2233, mikael);
        contaMikael.deposita(250);
        ContaPoupanca contaJoao = new ContaPoupanca(4567, 77668, joao);
        contaJoao.deposita(900);

        ContaCorrente contaAlfredo = new ContaCorrente(6666, 7789, alfredo);
        ContaPoupanca contaMaria = new ContaPoupanca(6666, 7789, maria);

        Gerente gerente = new Gerente();
        gerente.cadastraCliente(joao);
        gerente.cadastrarConta(contaAlfredo);
        gerente.cadastrarConta(contaJoao);
        gerente.cadastrarConta(contaMikael);
        gerente.cadastrarFuncionarios(maria);
        gerente.cadastrarFuncionarios(alfredo);
        gerente.cadastrarFuncionarios(jose);
        gerente.mudaSituacaoConta(false, "mikael");
    }

}
1 resposta

Olá Mikael, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

Obrigado por compartilhar seu código com a comunidade. Existem várias abordagens para resolver um problema em programação e você está indo no caminho correto, seu código cumpre o objetivo proposto.

Gostaria de ressaltar, que à medida que você continuar a escrever código e explorando diferentes abordagens, irá aprimorar cada vez mais suas habilidades. A prática constante permite que você se familiarize com as melhores práticas, ganhe confiança e se torne mais eficiente na resolução de problemas. Continue programando e buscando conhecimento, pois é assim que você se tornará um desenvolvedor ainda melhor.

Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software