Eu tentei fazer com o forEach mas estou recebendo NullPointer. Não entendi bem por que isso aconteceu. Segundo o instrutor, o forEach eliminaria o problema do NullPointer por não acessar uma posição sem referência.
Classe Funcionario:
package aprendizadojavaalura;
public class Funcionario {
String nome;
String departamento;
double salario;
Data dataEntrada;
String rg;
void recebeAumento(double salario){
this.salario += salario;
}
double calculoGanhoAnual(){
return this.salario * 12;
}
void mostrarInfoFuncionario(){
System.out.println("Nome Funcionário: "+this.nome);
System.out.println("Departamento: "+this.departamento);
System.out.println("Salário (R$) "+this.salario);
System.out.println("RG: "+this.rg);
System.out.println("Data de Entrada: "+ this.dataEntrada.getFormatada());
}
}
Classe Empresa :
package aprendizadojavaalura;
public class Empresa {
String nome;
String cnpj;
Funcionario[] empregados;
int livre = 0;
void adicionar(Funcionario f){
// Coloca a referência do objeto Funcionario dentro do array de Funcionarios na posição livre (que começa com 0)
this.empregados[this.livre] = f;
//Coloca um contador para mudar a posição do Array, para não sobrescrever o Funcionário na posição anterior.
this.livre++;
}
void mostrarSalarioFuncionarios(){
for(Funcionario funcionario : this.empregados){
System.out.println("Nome Funcionário: "+funcionario.nome);
System.out.println("Salário (R$): "+funcionario.salario);
}
}
}
Classe Main
package aprendizadojavaalura;
public class BalancoTrimestral {
public static void main(String[] args) {
Funcionario f1 = new Funcionario();
f1.nome = "Leonardo Lopes";
f1.departamento = "T.I";
f1.rg = "41.439.370-3";
f1.salario = 10000;
f1.dataEntrada = new Data();
f1.dataEntrada.montarData(10, 11, 2011);
Funcionario f2 = new Funcionario();
f2.nome = "Lucas Souza";
f2.departamento = "Comércio";
f2.rg = "23.421.370-3";
f2.salario = 2000;
f2.dataEntrada = new Data();
f2.dataEntrada.montarData(10, 11, 2011);
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[10];
empresa.adicionar(f1);
empresa.adicionar(f2);
empresa.mostrarSalarioFuncionarios();
}
}