Dificuldade com métodos

6 respostas
C

Pessoal,

Tenho mais tres métodos que não consigo fazer...
- alocaFuncionario
- calculaIdade
- calculaTempoServico

public class Funcionario {
	private String nome;
	private double salario;
	private Data nascimento;
	private Data admissao;
	private Departamento departamento;
	
	//construtor que recebe como parâmetros, o nome, o salário, o departamento (do tipo Departamento) e as datas (do tipo Data)
	public Funcionario(String nome, double salario, Data nascimento, Data admissao, Departamento departamento){
		this.nome = nome;
		this.salario = salario;
		this.nascimento = nascimento;
		this.admissao = admissao;
		this.departamento = departamento; 
	}
	
	//construtor que recebe, como parâmetro, o nome, o salário, o departamento (do tipo Departamento), a data de nascimento (do tipo Data) e o dia, o mês e o ano de admissão
	public Funcionario(String nome, double salario, Departamento departamento, Data nascimento, Data admissao, int dia, int mes, int ano){
		this.nome = nome;
		this.salario = salario;
		this.departamento = departamento;
		this.nascimento = nascimento;
		this.admissao = new Data(ano, mes - 1, dia);
	}
	
	//construtor para funcionários que ainda não foram alocados para um departamento. Neste caso, os parâmetros são o nome, o salário e as datas(do tipo Data)
	public Funcionario(String nome, double salario, Data admissao, Data nascimento){
		this.nome = nome;
		this.salario = salario;
		this.admissao = admissao;
		this.nascimento = nascimento;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getNome() {
		return nome;
	}
	
	//recebe um valor e o atribui como salário do funcionário. Se o valor recebido for inválido(menor que o
	public void setSalario(double salario){
		double salarioMinimo = 545.00;
		if(salario < salarioMinimo)
			salarioMinimo = salario;
	}

	public double getSalario() {
		return salario;
	}

	public void setNascimento(Data nascimento) {
		this.nascimento = nascimento;
	}

	public Data getNascimento() {
		return nascimento;
	}

	public void setAdmissao(Data admissao) {
		this.admissao = admissao;
	}

	public Data getAdmissao() {
		return admissao;
	}

	public void setDepartamento(Departamento departamento) {
		this.departamento = departamento;
	}

	public Departamento getDepartamento(){
		return departamento;
	}
	
	//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
	public void alocaFuncionario(Departamento dep){
		
		
	}
	
	//calcula e retorna a idade do funcionário. Dica: subtraindo a data invertida de nascimento
	//da data invertida de hoje e dividindo por 10000, obtêm-se a idade do funcionário
	private int calculaIdade(int idade){
		return idade;
	}
	
	//calcula e retorna o tempo de serviço em anos do funcionário
	private int calculaTempoServico(int tempo){
		return tempo;
	}
	
	//recebe uma taxa percentual e aplica como aumento para o salário do funcionário
	public void aumentaSalario(double taxa){
		salario = salario + (salario*taxa);
	}
}

6 Respostas

brunorota

formata o post direito para nós possamos visualizar melhor o código

Vingdel

Olá, cristhianetais, boa noite!

As tags CODE estão erradas, no início é sem a barra e no final é com a barra…

Até mais!

C

Desculpa, foi um lapso… Corrigido

Kanin_Dragon

Jovem,

Porque vc não consegue ? poste suas dúvidas e dificuldades.

Abs,

drsmachado

O que seria esse alocaFuncionario?
Para os métodos calculaIdade e calculaTempoDeServico, você pode utilizar a mesma lógica
Como você possui uma classe Data, cujos parâmetros são int dia, mes e ano, pode fazer algo mais ou menos assim:

...
int anoId;
public int calculaIdade(int diaAtual, int mesAtual, int anoAtual){
 if(mesAtual > f1.nascimento.mes){
  //pois após o aniversário, a idade é a diferença do ano atual com o ano de nascimento
  anoId = f1.nascimento.mes - anoAtual;
 }else if(mesAtual == f1.nascimento.mes){
  if(diaAtual > f1.nascimento.dia){
   //se o mês é o mesmo, mas o dia menor, ele ainda tem a idade = à diferença de ano atual e nascimento, menos 1
   anoId = anoAtual - f1.nascimento.ano - 1; 
  }else{
   // se o dia é igual ou maior, ele já fez aniversário e está com a idade igual à diferença de ano atual com ano de nascimento
   anoId = anoAtual - f1.nascimento.ano; 
  }else){//se o mês é menor que o mês de nascimento, a idade é igual à diferença de ano atual e ano de nascimento - 1;
   anoId = anoAtual - f1.nascimento.ano - 1; 
  }
 }
}

Para o tempo de serviço, basta substituir as chamadas f1.nascimento.VARIAVEL_DIA_MES_OU_ANO por f1.dataDeAdmissao.VARIAVEL_DIA_MES_OU_ANO

heroijapa

O aloca funcionario nao e a mesma coisa que o setDepartamento?

Criado 4 de maio de 2011
Ultima resposta 5 de mai. de 2011
Respostas 6
Participantes 6