Exercícios com array, e modificadores de acesso e atributos de classe

1 resposta
R

Galera,

Estou fazendo alguns exercícios da apostila do CAELUM tentando implementar algumas coisinhas amais, porém estou com dificuldade em fazer com que uma classe chamada Funcionario recebe em um array, os valores vindos de outra classe chamada RodaFuncionario.
Segue o código:

EDIT - Por favor, use o botãozinho “code” para entrar com código.

FUNCIONARIO

public class Funcionario {
	
	public int cod_Funcio[]=new int[2];
	private String nome_Funcio[]=new String[2];
	private double salario_Funcio[]=new double[2];
	private long rg_Funcio[]=new long[2];
	private String cpf_Funcio[]=new String[2];
	private boolean status_Funcio[]=new boolean[2];
	private Data data;
		
	public void Funcionario(
			int cod_Funcio[],
			String nome_Funcio[],
			Data dt_Nasc_Funcio[],
			Data dt_Contrat_Funcio[],
			long rg_Funcio[],
			String cpf_Funcio[],
			int counter) {
		
			//for(counter=0; counter < cod_Funcio.length;counter++){
				this.cod_Funcio[counter] = cod_Funcio[counter];
				this.nome_Funcio[counter] = nome_Funcio[counter];
				this.rg_Funcio[counter]=rg_Funcio[counter];
				this.cpf_Funcio[counter]=cpf_Funcio[counter];
			//}
		}
	
	public int getCodigoFunc(int[] cod_Funcio,int counter){
			return this.cod_Funcio[counter];
	}
	
	public String getNomeFunc(String[] nome_Funcio,int counter){
			return this.nome_Funcio[counter];
	}
	
	public long getRg_Func(long[] rg_Funcio, int counter){
			return this.rg_Funcio[counter];
	}
	
	public String getCPF_Func(String[] cpf_Funcio, int counter){
			return this.cpf_Funcio[counter];
	}
	
	public void setCodFuncio(int cod_Funcio[],int i){
			this.cod_Funcio[i]=cod_Funcio[i];
	}

	public void setNome_Func(String nome_Funcio[],int i){
		this.nome_Funcio[i]=nome_Funcio[i];
	}

	public void setRG_Funcio(long rg_Funcio[],int i){
		this.rg_Funcio[i]=rg_Funcio[i];
	}
	
	public void setcpf_Funcio(String cpf_Funcio[],int i){
		this.cpf_Funcio[i]=cpf_Funcio[i];
	}
	
	
	public void printFuncionario(){

		System.out.printf("%s%13s%21s%37s%54s%60s\n","Codigo","Nome","DtNascimento",
				"DtContratacao","RG","CPF");
		for(int i : cod_Funcio){
			System.out.print(this.cod_Funcio[i]+" ");
			System.out.print(this.nome_Funcio[i]+" ");
			data.juntaDataNasc();
			data.juntaDataContrat();
			System.out.print(this.rg_Funcio[i]+" ");
			System.out.print(this.cpf_Funcio[i]);
		}
		//System.out.printf("%5d%8d%16d%17d%6d%7d\n",cod_Funcio[i],nome_Funcio[i],
		//data.getDiaNascimento(i),    DtContratacao    RG    CPF);
	}
	
	public void workStarStop(boolean[] status_Funcio){
		for(int counter=0;counter< status_Funcio.length;counter++){
			if(counter % 2 ==0)
				this.status_Funcio[counter]=true;
			else
				this.status_Funcio[counter]=true;
		}
	}
		
	public void printStatus(boolean[] status_Funcio){
		for(int i : cod_Funcio){
			if(status_Funcio[i]== true)
				System.out.println("Sr(a). "+nome_Funcio[i]+" está trabalhando" );
		}	
	}

	public void atribuiSalario(){

		for(int counter=0;counter<cod_Funcio.length;counter++){
			if(counter<=6){
				salario_Funcio[counter]=20*100;
			}	
			else{
				salario_Funcio[counter]=20*50;
			}	
		counter=counter+1;

		}
	}
}

RODA FUNCIONARIO


public class RodaFuncionario {

	public static void main(String[] args) {
		Data data = new Data();
		Funcionario funcionario= new Funcionario();
		
		for(int i=0; i < funcionario.cod_Funcio.length; i++){
			
			funcionario.setCodFuncio(i+1,i);
			/*A intenção aqui é passar os dados para os metodos set... da classe funcionario, porém está alegando erro nos métodos set daqui da classe RodaFuncionario*/
		}
	}

}

DATA

public class Data {
	private int dia_Nasc[]=new int[2];
	private int dia_Contrat[]=new int[2];
	private int mes_Nasc[]=new int[2];
	private int mes_Contrat[]=new int[2];
	private int ano_Nasc[]=new int[2];
	private int ano_Contrat[]=new int[2];
	
	public int getDiaNascimento(int dia_Nasc[], int i){
		return this.dia_Nasc[i];
	}

	public int getDiaContratacao(int dia_contrat[], int i){
		return this.dia_Contrat[i];
	}
	
	public int getMesNascimento(int mes_Nasc[], int i){
		return this.mes_Nasc[i];
	}
	
	public int getMesContratacao(int mes_Contrat[], int i){
		return this.mes_Contrat[i];
	}
	
	public int getAnoNascimento(int ano_Nasc[], int i){
		return this.ano_Nasc[i];
	}
	
	public int getAnoContratacao(int ano_Contrat[], int i){
		return this.ano_Contrat[i];
	}
	
	public void setDataDia(){
		for(int i : dia_Nasc){
			this.dia_Nasc[i]=i+1;
			this.dia_Contrat[i]=i+10;
		}
	}
	
	public void setDataMes(){
		for(int i : dia_Nasc){
			this.mes_Nasc[i]=i+6;
			this.mes_Contrat[i]=i+1;
		}
	}
	
	public void setDataAno(){
		for(int i : dia_Nasc){
			this.ano_Nasc[i]=1979+1;
			if(i==2)
				this.ano_Contrat[i]=2004+i;
			else
				this.ano_Contrat[i]=2000+i;
		}
	}
	
	public void juntaDataNasc(){
		
		for(int i : dia_Nasc){
			System.out.print(dia_Nasc[i]+"/"+mes_Nasc[i]+"/"+ano_Nasc[i]+" ");
		}
		
	}
	
	public void juntaDataContrat(){
		
		for(int i : dia_Contrat){
			System.out.print(dia_Contrat[i]+"/"+mes_Contrat[i]+"/"+ano_Contrat[i]+" ");
		}
		
	}
}

Agradeço desde já a atenção.

1 Resposta

thiago.correa

Cara o teu código está muito confuso, segue abaixo uma solução para o problema:

Classe Funcionario

public class Funcionario {

  private String nome;
  private String id;

  public String getId() {
    return this.id;
  }
  public void setId(String id) {
    this.id = id;
  }
  public String getNome() {
    return this.nome;
  }
  public void setNome(String nome) {
    this.nome = nome;
  }




}

Classe Empresa

public class Empresa {

  //array de Funcionarios
  private Funcionario[] f = new Funcionario[5];

  //posição corrente do vetor
  private static int pos = 0;

  //método que adiciona um Funcionario no vetor de Funcionario
  public void adiciona(Funcionario f) {
    if (this.f[pos] == null)
      this.f[pos++] = f;
  }

  //imprime o conetudo do vetor
  public void imprimeListaDeFuncionarios(){
    for (int i = 0; i < pos; i++) {
      System.out.println("id: " + f[i].getId());
      System.out.println("Nome: " + f[i].getNome());
    }
  }

}

Classe Teste

public class Teste {

  /**
   * @param args
   */
  public static void main(String[] args) {
    //cria uma instância de Empresa
    Empresa e = new Empresa();

    //cria um objeto Funcionario
    Funcionario f = new Funcionario();
    //seta a ID
    f.setId("01");
    //seta o Nome
    f.setNome("thiago");
    //adiciona o Funcionario na classe Empresa
    e.adiciona(f);

    Funcionario f1 = new Funcionario();
    f1.setId("02");
    f1.setNome("gui");
    e.adiciona(f1);

    Funcionario f2 = new Funcionario();
    f2.setId("03");
    f2.setNome("adriano");
    e.adiciona(f2);

    Funcionario f3 = new Funcionario();
    f3.setId("04");
    f3.setNome("lu");
    e.adiciona(f3);

    Funcionario f4 = new Funcionario();
    f4.setId("05");
    f4.setNome("dinah");
    e.adiciona(f4);

    //imprime a lista
    e.imprimeListaDeFuncionarios();

  }

}
Criado 16 de maio de 2006
Ultima resposta 16 de mai. de 2006
Respostas 1
Participantes 2