Dúvidas, implementações de duas classes

1 resposta
yurisoares

Tenho duas classes, Enfermeiros e Funcionarios, cada uma com seus atributos e métodos.
O trabalho constitui em unir essas duas. Preciso fazer os 8 passos, mas estou me batendo bastante em como fazer isso. Alguém pode ajudar?

  1. Todas as funcionalidades dos dois módulos deve estar integradas em
    um único sistema;
  2. O cadastro de funcionário deve ser alterado. Um funcionário deve
    conter os seguintes dados: RG, CPF, nome, telefone, endereço,
    cidade, estado, salário e cargo (serviços gerais, enfermeiro,
    administrador, maqueiro ou vigilante). Não será mais necessário o
    cadastro do departamento;
  3. Se o cargo do funcionário for enfermeiro, o cadastro do funcionário
    deve exigir ainda as informações de um enfermeiro: lotação
    emergência, enfermaria ou apartamentos) e regime de trabalho (12 ou
    24 horas);
  4. O mesmo comportamento do cadastro deve ocorrer para a alteração.
    Na alteração, o cargo não pode ser modificado;
  5. O sistema permitir a busca por funcionários, de acordo com o cargo
    escolhido. Depois de listar os funcionários, o sistema deve exibir no
    final o somatório dos salários de todos os funcionários para o cargo
    buscado;
  6. O sistema deve permitir a busca por enfermeiros: primeiro, deve
    permitir buscar a lista de enfermeiros pela lotação que ocupam, deve
    listar enfermeiros de acordo com o regime de trabalho escolhido;

1 Resposta

Jonas_B_a_r_r_o_s

Funcionario nessa modelagem está muito abstrato. Quer dizer que você vai fazer um cadastro de um funcionairo que a principio esteja indefinido, para depois preencher os dados referentes ao cargo? Seria bem mais facil você primeiro escolher que tipo de funcionario deseja cadastrar. Mas também é possivel fazer assim.

Como penso:
Primeiro: crie a classe Funcionario, coloque todos os atributos referentes a ele.
Segundo: crie todas as classes referentes a cargo, Enfermeiro, Administrador, AuxuliarServico, Maqueiro
Terceiro: crie uma classe Cargo que receberá todas as classes referentes aos cargos

public class Funcionario {
       //atributos
       //setters e getters

       //Objeto cargo está dentro de funcionario. Estou usando conceito de composição aqui, por isso         cargo está também no construtor de Funcionario, ja que Funcionario POSSUI um cargo

       Cargo cargo;
   
       public Funcionario (Cargo cargo) {
       
       }
}

Depois a classe Cargo

public class Cargo() {
     //Essa classe aqui possuirá somente atributos  do tipo de Classe, ou seja: 
      Enfermeiro enfermeiro;
      Administrador administrador; 
      Maqueiro maqueiro
     
     //Crie obrigatoriamente os setters e getters para esses atributos
  

}

Depois, então você cria as classes referentes aos cargos normalmente

public class Enfermeiro () {
       //Atributos e metodos de enfermeiro
       //setters e getters
}

… E as outras

O que acontece quando você for cadastrar um funcionario. O compilador exigirá que você crie também no seu construtor o objeto cargo.

Então, faça:

Funcionario funcionario new Funcionario(new Cargo());

Assim, você usara esse objeto para chamar metodos tanto da classe Funcionario quanto da classe Cargo

//atributos referentes somente a funcionario
funcionario.setNome();

//atributos referentes ao cargo
funcionario.getCargo().getEnfermeiro().setLotacao();
funcionario.getCargo().getEnfermeiro().setEnfermaria();

Você impute todas as classes de cargo dentro de Cargo, e ao cadastrar um novo funcionario você tem acesso a todo o sistema de classes atraves dos getters
No cadastro do funcionario, ao ter no construtor o objeto cargo, você pode escolher quem deseja cadastrar.

Supondo um menu:

switch (opcao) {

case 1://para cadatro de enfermeiro 
          Funcionario funcionario = new Funcionario(new Cargo());
          funcionario.setNome();
          funcionario.getCargo().getEnfermeiro().setSalario();

}

No caso, onde diz que Cargo não pode ser modificado. Você pode simplesmente não coloca-lo na alteração. Coloque apenas os atributos do funcionario.

funcionario.setNome();
funcionario.setSalario():

E essa parte da busca?
Para listar a soma dos salarios, isso vai depender. Você está vai usar banco de dados? Neste caso, essa soma você pode fazer usando um query do proprio banco. E as buscas também

Criado 7 de julho de 2016
Ultima resposta 8 de jul. de 2016
Respostas 1
Participantes 2