[RESOLVIDO] - Duvida para montar método

1 resposta
M

Tenho que fazer um método que se chama "alocar", este método será chamado sempre que o funcionário for alocado ou realocado. Recebe um parâmetro do tipo Departamento que corresponde ao departamento para o qual o funcionário está sendo transferido ou alocado. Repare que este método deve atualizar os objetos do tipo Departamento envolvidos na operação. Como eu posso fazer?

Minha classe Funcionario é essa:
public class Funcionario{
        private String nome;
        private double salario;
        private Data data_nascimento;
        private Data data_admissao;
        private Departamento depto;
   
          public Funcionario(String n, Departamento dep, double sal, Data data_n, Data data_a){
          nome = n;
          depto = dep;
          salario = sal;
          data_nascimento = data_n;
          data_admissao = data_a;
        }
        
          public Funcionario(String n, Departamento dep, double sal, Data data_n, int dia_a, int mes_a, int ano_a){
          nome = n;
          depto = dep;
          salario = sal;
          data_nascimento = data_n;
          Data data = new Data(dia_a, mes_a, ano_a);
        }    
        
         public Funcionario(String n, double sal, Data data_n, Data data_a){
          nome = n;
          salario = sal;
          data_admissao = data_a;
          data_nascimento = data_n;
        }    
        
        public void setSalario(double salario) {
            double salarioMinimo = 675.00;
            if(salario < salarioMinimo){
            salario = salarioMinimo;
            }
       
        }
        
        public double getSalario(){
            return salario;
        }
        
        public String getNome(){
            return nome;
        }
        
        public Data getDataNascimento(){
            return data_nascimento;
        }
        
        public Data getDataAdmissao(){
            return data_admissao;
        }
        
        public Departamento getDepartamento(){
            return depto;
        }
        
        public String exibeDados(){
      
            System.out.println("O nome do funcionário é: " + this.getNome());
            System.out.println("");
            System.out.println("O salário do funcionário é: " + this.getSalario());
            System.out.println("");
            System.out.println("A data de nascimento do funcionário é: " + this.getDataNascimento());
            System.out.println("");
            System.out.println("A data de admissão do funcionário é: " + this.getDataNascimento());
            System.out.println("");
            System.out.println("O departamento do funcionário é: " + this.getDepartamento());
               return String.valueOf(this.getNome());

        }
        
    
        public void aloca(Departamento d){
            
        }
        
        public int calculaIdade(){ 
            Data dataAtual = new Data();
            int hoje = dataAtual.getDataInvertida();
            int idade = (hoje - data_nascimento.getDataInvertida()) / 10000;
            return idade;
        }

        public int calculaTempoDeServico(){
            Data dataAtual = new Data();
            int hoje = dataAtual.getDataInvertida();
            int tempo = (hoje - data_admissao.getDataInvertida()) / 10000;
            return tempo;
            
        }
        
         public double aumentaSalario(double taxa){
             salario = salario + salario*taxa;
             return salario;
        
        }
        
        public void aumentaSalario(double taxa1, double taxa2, double taxa3){
          Data d = new Data();
          Teclado t = new Teclado();
     
            if (taxa1 > taxa2 && taxa1 > taxa3){
                 double maiorTaxa = taxa1;
                }
            
                if (taxa1 < taxa2 && taxa1 > taxa3 || taxa1 > taxa2 && taxa1 < taxa3){
                    double taxaIntermediaria = taxa1;
                }
            
                    if (taxa1 < taxa2 && taxa1 < taxa3){
                        double menorTaxa = taxa1;
                    }
  
            if (taxa2 > taxa1 && taxa2 > taxa3){
             double maiorTaxa = taxa2;
            }
        
                if (taxa2 < taxa1 && taxa2 > taxa3 || taxa2 > taxa1 && taxa2 < taxa3){
                    double taxaIntermediaria = taxa2;
                }
        
                    if (taxa2 < taxa1 && taxa2 < taxa3){
                        double menorTaxa = taxa2;
                    }
   
            if (taxa3 > taxa1 && taxa3 > taxa2){
                double maiorTaxa = taxa3;
            }
    
                if (taxa3 < taxa1 && taxa3 > taxa2 || taxa3 > taxa1 && taxa3 < taxa2){
                    double taxaIntermediaria = taxa3;
                }
    
                    if (taxa3 < taxa1 && taxa3 < taxa2){
                        double menorTaxa = taxa3;
                    }
      
            if(calculaIdade() < 27){  
               salario = salario+salario*taxa1;  
            }else if (calculaIdade() >= 27 && calculaIdade() <=38 && calculaTempoDeServico() <=7){  
                salario = salario+salario*taxa2;  
            } else   if (calculaIdade() >= 27 && calculaIdade() <=38 && calculaTempoDeServico() >=7){  
                salario = salario+salario*taxa3;  
            }else if (calculaIdade() > 38){  
                salario = salario+salario*taxa3; 
  
        }
        
    }
    
    public void aumentaSalario(int cod_dep, double taxa){
         if(depto.getCodigo() == cod_dep){
         salario = salario + salario*taxa;    
        }
     
        }
        
        
        
    }
e a Departamento é essa:
public class Departamento {
            //------ atributos------
        private int codigo;
        private String nome_departamento;
        private int qtd_func;
        //-------- construtor----------------------------
        
            public Departamento( int cod, String nom) {
                codigo = cod;
                nome_departamento = nom;
                qtd_func = 0;
              
            }  
            
            //--------------métodos----------------------
            
            public void saiFuncionarioDoDepto(){
                if (getQtdFuncionario() > 0){
                qtd_func = getQtdFuncionario()- 1;
                 }
          
            }  
            
            public void entraFuncionarioNoDepto(){
                getNome();
                qtd_func = qtd_func + 1;
            }
            
            public String dadosDoDepartamento(){
                System.out.println("O código do departamento é: " + this.getCodigo());
                System.out.println("");
                System.out.println("O nome do departamento é: " + this.getNome());
                System.out.println("");
                System.out.println("A quantidade de funcionários é: " + this.getQtdFuncionario());
                return String.valueOf(this.getQtdFuncionario());
                
            }
            
            public void setCodigo(int codigo ) {
                if (codigo >= 1 && codigo <= 5){
                this.codigo = codigo;
              }else {
                this.codigo = 1;
                }
            }
        
            public void setNome(String n ) {
                if (n.length() >0)
                nome_departamento = n;
        
            }
        
            public int getCodigo() {
                return codigo;
            }
        
            public String getNome() {
                return nome_departamento;
            }
            
            public int getQtdFuncionario() {
                return qtd_func;
            }
      
  }

1 Resposta

K

o método alocar seria pra retirar o funcionario de um departamento, colocar em outro e atualizar os dois?
Bom primeiro acho que faria mais sentido colocar esse método na classe Departamento. Dentro do método você pode receber 2 parametros, o funcionario que vai ser movido e para qual departamento ele vai, dentro do método você move o funcionario do Departamento 1 para o Departamento 2, ai chama o removeFuncionario() no Deparatamento 1 e o adicionaFuncionario() no Departamento 2

Criado 25 de abril de 2013
Ultima resposta 25 de abr. de 2013
Respostas 1
Participantes 2