Quando coloco um funcionário f3 para no método contem ele retorna um erro. Vi em outras perguntas que esse erro aparece porque não inicializei o f3. Mas tem como retornar alguma mensagem quando colocar qualquer outra coisa sem ter que inicializar? Outra coisa, como substituo o "true" que aparece quando o funcionário existe por uma outra mensagem como "Funcionário existente"?
public class Data {
int dia, mes, 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;
}
}
public class Funcionario {
String nome;
String departamento;
double salario;
double ganhoAnual;
Data dataDeEntrada;
void recebeAumento(double valor) {
this.salario += valor;
}
public double calculaGanhoAnual() {
return this.salario * 12;
}
void mostra() {
System.out.println("Nome: " + this.nome);
System.out.println("Departamento: " + this.departamento);
System.out.println("Salário: " + this.salario);
System.out.println("Ganho anual: " + this.calculaGanhoAnual());
System.out.println("Data de entrada: " + this.dataDeEntrada.getFormatada() + "\n");
}
}
public class Empresa {
String nome;
int cnpj;
Funcionario[] funcionarios;
int livre = 0;
void adicionar(Funcionario f) {
this.funcionarios[this.livre] = f;
this.livre++;
}
void mostraFuncionarios() {
for(int i = 0; i < this.livre; i++) {
System.out.println("Funcionário na posição: " + i);
System.out.println("R$" + this.funcionarios[i].salario);
}
}
void mostraTodasAsInformacoes() {
for(int i = 0; i < this.livre; i++) {
System.out.println("Id: " + i);
this.funcionarios[i].mostra();
}
}
boolean contem(Funcionario f) {
for (int i = 0; i < this.livre; i++) {
if (f == this.funcionarios[i]) {
return true;
}
}
return false;
}
}
public class TestaEmpresa {
public static void main(String[] args) {
Empresa neowix = new Empresa();
neowix.funcionarios = new Funcionario[10];
Funcionario f1 = new Funcionario();
f1.nome = "Marcelo";
f1.departamento = "TI";
f1.salario = 1000;
f1.dataDeEntrada = new Data();
f1.dataDeEntrada.dia = 13;
f1.dataDeEntrada.mes = 10;
f1.dataDeEntrada.ano = 1981;
neowix.adicionar(f1);
Funcionario f2 = new Funcionario();
f2.nome = "Adriana";
f2.departamento = "TI";
f2.salario = 2000;
f2.dataDeEntrada = new Data();
f2.dataDeEntrada.dia = 14;
f2.dataDeEntrada.mes = 11;
f2.dataDeEntrada.ano = 1985;
neowix.adicionar(f2);
neowix.mostraTodasAsInformacoes();
System.out.println(neowix.contem(f2));
}
}