Boa tarde! Meu código ficou assim:
class Funcionario {
String nome;
double salario;
Data dataEntrada;
String dep;
String rg;
void recebeAumento(double aumento) {
this.salario+=aumento;
}
double calculaGanhoAnual() {
return this.salario*12;
}
void mostra() {
System.out.println("Nome: " + this.nome);
System.out.println("Departamento: " +this.dep);
System.out.println("Data de entrada: " + this.dataEntrada.getFormatada());
System.out.println("N. de identidade:" +this.rg);
System.out.println("salario atual:" + this.salario);
System.out.println("ganho anual:" + this.calculaGanhoAnual());
}
}
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{
Funcionario[] empregados;
String nome;
String cnpj;
int contador = 0;
void adiciona(Funcionario f){
this.empregados[this.contador] = f;
this.contador++;
}
}
class TestaEmpresa{
public static void main (String[] args) {
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[10];
Funcionario f1 = new Funcionario();
f1.salario = 1000;
empresa.adiciona(f1);
Funcionario f2 = new Funcionario();
f2.salario = 1700;
empresa.adiciona(f2);
empresa.empregados[0].mostra();
empresa.empregados[1].mostra();
}
}
class Programa {
public static void main(String[] args) {
Funcionario f1 = new Funcionario();
f1.nome = "Mariana";
f1.salario = 100;
// adicionando a data como tipo
f1.dataEntrada = new Data();
f1.dataEntrada.preencheData(1, 7, 2009);
f1.dep = "RH";
f1.rg = "12326545656";
f1.recebeAumento(50);
Funcionario f2 = new Funcionario();
f2.nome = "Hugo";
f2.salario = 100;
if (f1 == f2) {
System.out.println("iguais");
} else {
System.out.println("diferentes");
}
f1.mostra();
}
}
Mas, quando rodei java TestaEmpresa deu a seguinte informação: Exception in thread "main" java.lang.NullPointerException at Funcionario.mostra(Funcionario.java:18) at TestaEmpresa.main(Funcionario.java:68)
Estou perdido!