FJ11: Exercícios: 5.5 Arrays Parte 4

Sem sombras de dúvidas que o programa ficou bem melhor e mais claro com suas dicas, mais o tal erro ( duplicate class: Data class Data{ error ) persiste quando eu mando “Testar o Projeto” e é só com este programa que isto acontece! O curioso é que quando eu mudo o nome da classe Data para outro nome qualquer o erro some.
Esta assim![code]class Data{

   int dia;
   int mes;
   int ano;[/code]

Quando eu mudo o nome da Classe[code]class Entrada{ // <— Será que esse é o problema?

  int dia;
  int mes;
  int ano;[/code]

Estranho, não?

no meu caso fiz assim, espero que ajudem a todos

class Data {
	int dia;
	int mes;
	int ano;
}

class Funcionario {
//todos os outros atributos tbm tem que ter
	Data dataDeEntrada = new Data();
	double salario = 0;
//todos os outros métodos tbm tem que ter
	void mostra() {
		System.out.println("Salario: " + this.salario);
		System.out.println("Dia: " + this.dataDeEntrada.dia);
		System.out.println("Mês: " + this.dataDeEntrada.mes);
		System.out.println("Ano: " + this.dataDeEntrada.ano);
		System.out.println();
	}
}

class Empresa {
//todos os outros atributos tbm tem que ter
	Funcionario[] empregados;
	int posicao = 0;
//todos os outros métodos tbm tem que ter
	void adiciona(Funcionario f) {
		this.empregados[posicao] = f;
		this.posicao++;
	}
	void mostraEmpregados() {
		int i;
		for (i = 0; i < this.empregados.length; i++) {
			if (this.empregados[i]==null){
				continue;
			}
			System.out.println("Funcionário na posição: " + i);
			this.empregados[i].mostra();
		}
	}		

}
//programa Principal
public class TestaEmpresa {
	public static void main(String[] args) {
		Empresa empresa = new Empresa();
		empresa.empregados = new Funcionario[10];
//coloquei esse for só para add 5 funcionário qualquer atribuindo só salário
		for (int i = 0; i < 5; i++) {
			Funcionario f = new Funcionario();
			f.salario = 1000 + i * 100;
			empresa.adiciona(f);
		}
//chamada do método
		empresa.mostraEmpregados();
	}
}

Empresa

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    /
    package Exercicios;
    /
    @author maison.souza*/

public class Empresa {

public String nome;
public int cnpj;
public Funcionario[] empregados;

public void adiciona(Funcionario f1) {
    boolean estacheio = true;
    for (int x = 0; x < empregados.length; x++) {
        if (empregados[x] == null) {
            estacheio = false;
            empregados[x] = f1;
            System.out.println( "Adicionado Funcionário  = " + this.empregados[x].nome);
            break;
        }
    }
    if (estacheio == true) {
        System.out.println("O vetor está cheio não foi possível adicionar " + f1.nome);
        Funcionario[] empregados2 = new Funcionario[this.empregados.length * 2];
        for (int i = 0; i < this.empregados.length; i++) {
            empregados2[i] = empregados[i];
        }
        for (int x = empregados.length; x < empregados2.length; x++) {
            if (empregados2[x] == null) {
                empregados2[x] = f1;
                System.out.println("Um novo vetor foi criado Adicionado Empregado  = " + empregados2[x].nome);
                empregados = empregados2;
                break;
            }
        }
    }
}

public boolean contem(Funcionario f1) {
    boolean contem;
    for (int x = 0; x < empregados.length; x++) {
        if (this.empregados[x] == f1) {
            System.out.println("Encontrado");
            contem = true;
            return true;
        }
    }
    System.out.println("Não trabalha");
    return false;
}

public void mostraEmpresa() {
    System.out.println("Nome da Empresa :" + this.nome);
    System.out.println("CNPJ: " + this.cnpj);
    mostraEmpregados();
}

public void mostraEmpregados() {
    for (int x = 0; x < this.empregados.length; x++) {
        if (empregados[x] != null) {
            System.out.println("Funcionario da posição " + x + " Funcionário = " + empregados[x].nome);
        }
    }
}

public void mostraDetalhes(Funcionario funcionario) {
    funcionario.mostraFuncionario();
}

}
[/code]

Funcionario

[code]
/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package Exercicios;

/**
*

  • @author maison.souza
    */
    public class Funcionario {

    public String nome;
    public String departamento;
    public int salario;
    public String dataentrada;
    public String rg;
    public Data data = new Data();

    public void bonifica(double quantidade) {
    this.salario += quantidade;
    }

    public int calculaGanhoAnual() {
    this.salario = this.salario * 12;
    return this.salario;
    }

    public void mostraFuncionario() {
    System.out.println("Nome = " + this.nome);
    System.out.println("Departamento = " + this.departamento);
    System.out.println("Data de Entrada = " + this.data.dia + “/” + this.data.mes + “/” + this.data.ano);
    System.out.println("Salário = " + this.salario);
    System.out.println("Ganho Anual: " + calculaGanhoAnual());
    System.out.println("Rg = " + this.rg);
    }
    }[/code]

Por favor, evite ressuscitar tópicos. Ainda assim, se o fizer, deixe claro que está respondendo a um tópico antigo, não responda como se o usuário tivesse postado ontem.
Leia outras dicas de postagem em: http://www.guj.com.br/java/287476-gujnautas-how-to

Por favor, evite ressuscitar tópicos. Ainda assim, se o fizer, deixe claro que está respondendo a um tópico antigo, não responda como se o usuário tivesse postado ontem.
Leia outras dicas de postagem em: http://www.guj.com.br/java/287476-gujnautas-how-to[/quote]

Ok Entendido. :slight_smile: