Amigos,
O meu script teoricamente esta funcionando, resumidamente chamando o método empresa.contem, informando o funcionario empresa.funcionarios[0], retorna false. Teoricamente não existe este funcionario no array. A minha duvida é, eu estou criando o funcionario, pela chamada: empresa.funcionarios[0] = new Funcionario(); empresa.funcionarios[0].nome = "Vitor"; E mesmo assim retorna false. O que eu tenho que fazer para a minha empresa reconhecer esse funcionario e retornar true ?
package Exercícios;
class Empresa{
String nome;
int cnpj;
Funcionario[] funcionarios;
int livre = 0;
void imprimeFuncionarios(){
for(int i = 0; i < 10; i++){
Funcionario funcionario = this.funcionarios[i];
if(funcionario == null) continue;
System.out.println(this.funcionarios[i].nome);
}
}
void mostraEmpregados(){
for(int b = 0; b < this.funcionarios.length; b++){
System.out.println(this.funcionarios[b].nome);
}
}
void adiciona(Funcionario f) {
this.funcionarios[livre] = f;
livre++;
}
void mostraPosicaoLivre(){
for(int c = 0; c < this.livre; c ++){
System.out.println(this.livre);
}
}
boolean contem(Funcionario f){
for(int i = 0; i < this.livre; i++){
if( this.funcionarios[i] == f){
return true;
}
}
return false;
}
}
class Data{
int dia;
int mes;
int ano;
public void preencherData(int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
//@Override
//public String toString(){
// return dia + "/" + mes + "/" + ano;
String getFormatada() {
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
class Funcionario{
String nome;
String departamento;
int salario;
int RG;
Data dataDeEntrada;
void recebeAumento(double valor){
//double novoSalario= this.salario + valor;
//this.salario = novoSalario;
this.salario += valor;
}
double calculaGanhoAnual(){
return this.salario * 12;
}
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.dataDeEntrada.getFormatada());
System.out.println("RG: " + this.RG);
System.out.println("Ganho Anual: " + this.calculaGanhoAnual());
}
}
class TestaEmpresa{
public static void main(String[] args){
Empresa empresa = new Empresa();
empresa.funcionarios = new Funcionario[10];
empresa.funcionarios[0] = new Funcionario();
empresa.funcionarios[0].nome = "Vitor";
System.out.println(empresa.contem(empresa.funcionarios[0]));
}
}