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. 