Estou tentando resolver o exercício, mas quando coloco pra rodar meu arquivo, não consigo pegar as informações da classe Data, ficando 0/0/0. Segue o código a seguir:
public class Funcionario {
String nome;
String departamento;
double salario;
Data dataDeEntrada;
Empresa empresa;
void recebeAumento(double quantidade) {
this.salario += quantidade;
}
double calculaGanhoAnual() {
return this.salario * 12;
}
void mostra() {
System.out.println("Nome: " + this.nome);
System.out.println("Departamento: " + this.departamento);
System.out.println("Salario atual: " + this.salario);
System.out.println("Ganho anual: " + this.calculaGanhoAnual());
System.out.println("Data de entrada: " + this.dataDeEntrada.getFormatada());
}
}
public class Data {
int dia;
int mes;
int ano;
void mostraData(int dia, int mes, int ano) {
System.out.println(this.getFormatada());
}
String getFormatada() {
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
public class Empresa {
String nome;
String cnpj;
Funcionario[] empregados;
int livre = 0;
void adiciona(Funcionario f) {
this.empregados[this.livre] = f;
this.livre++;
}
}
public class testaEmpresa {
public static void main(String[] args) {
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[10];
Funcionario f1 = new Funcionario();
f1.dataDeEntrada = new Data();
f1.nome = "Haniel";
f1.departamento = "TI";
f1.salario = 1000;
f1.dataDeEntrada.mostraData(28, 07, 2000);
empresa.adiciona(f1);
Funcionario f2 = new Funcionario();
f2.dataDeEntrada = new Data();
f2.nome = "Bill Gates";
f2.departamento = "Chefe";
f2.salario = 2000;
f2.dataDeEntrada.mostraData(20, 02, 2004);
empresa.adiciona(f2);
Funcionario f3 = new Funcionario();
f3.dataDeEntrada = new Data();
f3.nome = "teste";
f3.departamento = "lol";
f3.salario = 3000;
f3.dataDeEntrada.mostraData(8, 12, 2002);
empresa.adiciona(f3);
for ( int i = 0; i < empresa.empregados.length; i++ ) {
if(empresa.empregados[i] != null){
empresa.empregados[i].mostra();
}
}
}}