Ola pessoal!
Lá no final do código eu faço uso do método contem() da classe empresa no objeto f6 e ele retorna false mesmo o f6 sendo copia do f3. Ele não deveria retornar true, sendo que o f6 e o f3 tem os mesmos valores para os atributos?
class Funcionario{
String nome;
double salarioBase;
double salarioBruto;
double salarioLiquido;
double salarioAnual;
String rg;
String funcao;
String cargo;
String lotacao;
String departamento;
double bonus;
double desconto;
double desempenhoFuncionario;
void recebeAumento(double aumento){
this.salarioBase += aumento;
}
double salarioAnual(){
return this.salarioBase*12;
}
void bonifica(){
if(this.desempenhoFuncionario >= 120)
{
this.bonus += this.salarioBase * 0.1;
}else{
this.bonus = 0;
}
}
void salarioMes(){
this.salarioBruto = this.salarioBase + this.bonus;
this.salarioLiquido = this.salarioBruto - this.desconto;
}
Data dataDeEntrada = new Data();
void mostra(){
this.bonifica();
this.salarioMes();
System.out.println("Data de Admissão "
+this.dataDeEntrada.dia+"/"
+this.dataDeEntrada.mes+"/"
+this.dataDeEntrada.ano+"/"
+"\nsalario Base: " + this.salarioBase
+"\nbonus: " + this.bonus
+"\ndesconto: " + this.desconto
+"\nsalario Bruto: " + this.salarioBruto
+"\nsalario Liquido: " + this.salarioLiquido
+"\nsalario Anual: " + salarioAnual()
+"\n");
}
}
class Data{
int dia;
int mes;
int ano;
void preencheData(int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
String getFormatada(){
return this.dia+"/"+this.mes+"/"+this.ano;
}
}
class Empresa{
String nome;
String cnpj;
Funcionario[] empregado;
int livre = 0;
void adiciona(Funcionario f){
this.empregado[this.livre] = f;
this.livre++;
}
void mostraEmpregado(){
for (int i=0; i<this.livre; i++){
System.out.println("Funcionário na posição: "+i
+"\nNome: "+this.empregado[i].nome
+"\nSalario base: "+this.empregado[i].salarioBase
+"\n");
}
}
void mostraTodasAInformacao(){
for (int i=0; i<this.livre; i++){
this.empregado[i].mostra();
}
}
boolean contem(Funcionario f){
for(int i=0; i<this.livre;i++){
if(f == this.empregado[i]){
return true;
}
}
return false;
}
}
class exercicio406{
public static void main(String[] args) {
Empresa empresa01 = new Empresa();
empresa01.empregado = new Funcionario[10];
Funcionario f1 = new Funcionario();
f1.dataDeEntrada = new Data();
f1.dataDeEntrada.preencheData(8, 3, 2015);
f1.nome = "Francisco";
f1.departamento = "Administrativo";
f1.salarioBase = 3500;
f1.rg = "2r365894";
f1.recebeAumento(155);
f1.desempenhoFuncionario = 135;
empresa01.adiciona(f1);
Funcionario f2 = new Funcionario();
f2.dataDeEntrada = new Data();
f2.dataDeEntrada.preencheData(20, 8, 2013);
f2.nome = "Felipe";
f2.departamento = "Administrativo";
f2.salarioBase = 2900;
f2.rg = "598672";
f2.recebeAumento(189);
f2.desempenhoFuncionario = 145;
empresa01.adiciona(f2);
Funcionario f3 = new Funcionario();
f3.dataDeEntrada = new Data();
f3.dataDeEntrada.preencheData(8, 3, 2015);
f3.nome = "Rodrigo";
f3.departamento = "Operacional";
f3.salarioBase = 2800;
f3.rg = "2r857952";
f3.recebeAumento(120);
f3.desempenhoFuncionario = 145;
empresa01.adiciona(f3);
Funcionario f4 = new Funcionario();
f4.dataDeEntrada = new Data();
f4.dataDeEntrada.preencheData(2, 12, 2011);
f4.nome = "Felipe";
f4.departamento = "Operacional";
f4.salarioBase = 2800;
f4.rg = "2r85895";
f4.recebeAumento(130);
f4.desempenhoFuncionario = 140;
empresa01.adiciona(f4);
Funcionario f5 = new Funcionario();
f5.dataDeEntrada = new Data();
f5.dataDeEntrada.preencheData(12, 5, 2012);
f5.nome = "Thiago";
f5.departamento = "Operacional";
f5.salarioBase = 2800;
f5.rg = "596823";
f5.recebeAumento(150);
f5.desempenhoFuncionario = 145;
empresa01.adiciona(f5);
Funcionario f6 = new Funcionario();
f6.dataDeEntrada = new Data();
f6.dataDeEntrada.preencheData(12, 5, 2012);
f6.nome = "Thiago";
f6.departamento = "Operacional";
f6.salarioBase = 2800;
f6.rg = "596823";
f6.recebeAumento(150);
f6.desempenhoFuncionario = 145;
System.out.println(empresa01.contem(f5));
System.out.println(empresa01.contem(f6));
}(
}