Boa noite. Fiz o método contém e queria testar a funcionalidade dele. Para isso inclui um enhanced for na classe testa que adiciona os funcionários e imprime conforme o retorno do método, porém creio que alguma coisa de muito errada não está certa. Criei dois funcionários idênticos e ao rodar o programa, aparece duas vezes a mensagem "Funcionario já cadastrado" e por fim a mensagem "Funcionário inserido com sucesso". Se eu mudar um dos funcionários a saída é a mesma. Seguem as classes:
class Data{
int dia;
int mes;
int ano;
void recebeData(int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
String dataFormatada(){
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
class Funcionario{
String nome;
String departamento;
double salario;
//String dataDeEntradaNoBanco;
Data data;
String rg;
void recebeAumento(double aumento){
this.salario += aumento;
}
double calculaGanhoAnual(){
return this.salario * 12.0;
}
void mostra(){
System.out.println("Nome: " + this.nome);
System.out.println("Departamento: " + this.departamento);
System.out.println("Salario: " + this.salario);
System.out.println("Data de entrada: " + this.data.dataFormatada());
System.out.println("RG: " + this.rg);
System.out.println("Ganho Anual: " + this.calculaGanhoAnual()+"\n");
}
}
class Empresa{
String nome;
String cnpj;
Funcionario[] funcionarios;
int controleFunc = 0;
void adiciona(Funcionario f){
this.funcionarios[this.controleFunc] = f;
this.controleFunc++;
}
void mostraEmpregados(){
for(int i = 0; i < this.funcionarios.length; i++){
if(this.funcionarios[i] != null){
this.funcionarios[i].mostra();
} continue;
}
}
boolean contem(Funcionario f){
for(int i=0; i<this.funcionarios.length; i++){
if(f == this.funcionarios[i]){
return true;
}
} return false;
}
}
class TestaEmpresa{
public static void main(String[] args){
Empresa empresa = new Empresa();
empresa.funcionarios = new Funcionario[2];
/*for(int i = 0; i < 11; i++){
Funcionario f = new Funcionario();
f.salario = 1000 + i * 50;
empresa.adicionar(f);
}*/
Funcionario f1 = new Funcionario();
f1.nome = "Teste";
f1.salario = 10000;
f1.departamento = "Tecnologia";
f1.data = new Data();
f1.data.recebeData(1,11,2016);
f1.rg = "12345678909";
empresa.adiciona(f1);
Funcionario f2 = new Funcionario();
f2.nome = "Teste2";
f2.salario = 10000;
f2.departamento = "Tecnologia";
f2.data = new Data();
f2.data.recebeData(1,11,2016);
f2.rg = "12345678909";
empresa.adiciona(f2);
empresa.mostraEmpregados();
for(Funcionario x : empresa.funcionarios){
empresa.contem(x);
if(empresa.contem(x) == true){
System.out.println("Funcionario ja cadastrado");
}
} System.out.println("Funcionario adicionado com sucesso");
}
}