Pessoal, boa noite. Estou tentando resolver um problema, por favor podem me ajudar?
Segue o código:
public class Funcionario2 {
PessoaFuncionario funcionario;
DescricaoEmpresa empresa;
DataFuncionarioEmpresa data;
double salario;
double aumentoSalario;
// Métodos para o funcionário relacionados a salários... //
void salarioFuncionario(double salario) {
this.salario = salario;
}
void funcionarioRecebeAumento(double aumentoSalario) {
this.aumentoSalario += aumentoSalario;
}
double calculaSalarioAnual() {
return this.salario *= 12;
}
void exibeInformacoesGerais() {
for (int i = 0; i < this.empresa.funcionarios.length; i++) {
Funcionario2 funcionario = this.empresa.funcionarios[i];
if (funcionario == null)
continue;
System.out.println();
System.out.println(">>>>>>>>>>>>EMPRESA<<<<<<<<<<");
System.out.println();
System.out.println("Empresa: " + this.empresa.nomeEmpresa + "\nCNPJ: "
+ this.empresa.cnpjEmpresa + "\nContato empresa: "
+ this.empresa.contatoEmpresa);
System.out.println();
System.out.println(">>>>>>>>>>DADOS DO FUNCIONÁRIO<<<<<<<<<");
System.out.println();
System.out.println("Nome Funcionário: " + this.funcionario.nome
+ "\nCPF: " + this.funcionario.cpf + "\nRG:"
+ this.funcionario.rg + "\nContato: "
+ this.funcionario.contato + "\nIdade: "
+ this.funcionario.idade + "\nSexo: " + this.funcionario.sexo
+ "\nData de entrada:" + this.data.dataFormatada());
System.out.println();
System.out.println(">>>>>>>>>>>>PAGAMENTO FUNCIONÀRIO<<<<<<<<<<<<");
System.out.println();
System.out.println("Salário: " + salario + "\nSalário com Aumento: "
+ this.aumentoSalario + "\nSalário Anual: "
+ calculaSalarioAnual());
}
}
}
class PessoaFuncionario {
String nome;
String rg;
String cpf;
String contato;
char sexo;
int idade;
}
class DescricaoEmpresa {
// Criando o Array porque todo array é um objeto..
// Criando o array porquê não sabemos a quantidade de funcionarios na empresa.
Funcionario2[] funcionarios;
String nomeEmpresa;
String cnpjEmpresa;
String contatoEmpresa;
}
class DataFuncionarioEmpresa {
int dia, mes, ano;
void dataFuncionarioEmpresa(int diaData, int mesData, int anoData) {
this.dia = diaData;
this.mes = mesData;
this.ano = anoData;
}
String dataFormatada() {
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
Classe Main:
public class Funcionario2_Main {
public static void main(String[] args) {
Funcionario2 f1 = new Funcionario2();
DescricaoEmpresa empresa = new DescricaoEmpresa();
// Criando array..
empresa.funcionarios = new Funcionario2[2];
empresa.funcionarios[0] = new Funcionario2();
f1.empresa = new DescricaoEmpresa();
f1.empresa.nomeEmpresa = "Elementary 01";
f1.empresa.cnpjEmpresa = "000.000.000-12";
f1.empresa.contatoEmpresa = "3347-1334";
// Criando referência para o objeto PessoaFuncionario.
empresa.funcionarios[0].funcionario.nome = "Felipe Portela";
empresa.funcionarios[0].funcionario.cpf = "000.111.222-34";
empresa.funcionarios[0].funcionario.rg = "1133.213";
empresa.funcionarios[0].funcionario.contato = "(61) 9383 -6998";
empresa.funcionarios[0].funcionario.idade = 20;
empresa.funcionarios[0].funcionario.sexo = 'M';
/*
* f1.funcionario = new PessoaFuncionario(); f1.data = new
* DataFuncionarioEmpresa();
*
* f1.funcionario.nome = "Felipe Portela"; f1.funcionario.cpf =
* "000.111.222-34"; f1.funcionario.rg = "2.300.212";
* f1.funcionario.idade = 20; f1.funcionario.contato = "61 9581-6998";
* f1.funcionario.sexo = 'M'; f1.data.dataFuncionarioEmpresa(04, 05,
* 1994);
*/
// Passando os argumentos para os parâmetros esperado pelo método..
f1.salarioFuncionario(100.0);
f1.funcionarioRecebeAumento(50.0);
// exibe informações a seguir..
f1.exibeInformacoesGerais();
}
}
ERRO: Pessoal, boa noite. Estou tentando resolver um problema, por favor podem me ajudar?
Segue o código:
public class Funcionario2 {
PessoaFuncionario funcionario;
DescricaoEmpresa empresa;
DataFuncionarioEmpresa data;
double salario;
double aumentoSalario;
// Métodos para o funcionário relacionados a salários... //
void salarioFuncionario(double salario) {
this.salario = salario;
}
void funcionarioRecebeAumento(double aumentoSalario) {
this.aumentoSalario += aumentoSalario;
}
double calculaSalarioAnual() {
return this.salario *= 12;
}
void exibeInformacoesGerais() {
for (int i = 0; i < this.empresa.funcionarios.length; i++) {
Funcionario2 funcionario = this.empresa.funcionarios[i];
if (funcionario == null)
continue;
System.out.println();
System.out.println(">>>>>>>>>>>>EMPRESA<<<<<<<<<<");
System.out.println();
System.out.println("Empresa: " + this.empresa.nomeEmpresa + "\nCNPJ: "
+ this.empresa.cnpjEmpresa + "\nContato empresa: "
+ this.empresa.contatoEmpresa);
System.out.println();
System.out.println(">>>>>>>>>>DADOS DO FUNCIONÁRIO<<<<<<<<<");
System.out.println();
System.out.println("Nome Funcionário: " + this.funcionario.nome
+ "\nCPF: " + this.funcionario.cpf + "\nRG:"
+ this.funcionario.rg + "\nContato: "
+ this.funcionario.contato + "\nIdade: "
+ this.funcionario.idade + "\nSexo: " + this.funcionario.sexo
+ "\nData de entrada:" + this.data.dataFormatada());
System.out.println();
System.out.println(">>>>>>>>>>>>PAGAMENTO FUNCIONÀRIO<<<<<<<<<<<<");
System.out.println();
System.out.println("Salário: " + salario + "\nSalário com Aumento: "
+ this.aumentoSalario + "\nSalário Anual: "
+ calculaSalarioAnual());
}
}
}
class PessoaFuncionario {
String nome;
String rg;
String cpf;
String contato;
char sexo;
int idade;
}
class DescricaoEmpresa {
// Criando o Array porque todo array é um objeto..
// Criando o array porquê não sabemos a quantidade de funcionarios na empresa.
Funcionario2[] funcionarios;
String nomeEmpresa;
String cnpjEmpresa;
String contatoEmpresa;
}
class DataFuncionarioEmpresa {
int dia, mes, ano;
void dataFuncionarioEmpresa(int diaData, int mesData, int anoData) {
this.dia = diaData;
this.mes = mesData;
this.ano = anoData;
}
String dataFormatada() {
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
Classe Main:
public class Funcionario2_Main {
public static void main(String[] args) {
Funcionario2 f1 = new Funcionario2();
DescricaoEmpresa empresa = new DescricaoEmpresa();
// Criando array..
empresa.funcionarios = new Funcionario2[2];
empresa.funcionarios[0] = new Funcionario2();
f1.empresa = new DescricaoEmpresa();
f1.empresa.nomeEmpresa = "Elementary 01";
f1.empresa.cnpjEmpresa = "000.000.000-12";
f1.empresa.contatoEmpresa = "3347-1334";
// Criando referência para o objeto PessoaFuncionario.
empresa.funcionarios[0].funcionario.nome = "Felipe Portela";
empresa.funcionarios[0].funcionario.cpf = "000.111.222-34";
empresa.funcionarios[0].funcionario.rg = "1133.213";
empresa.funcionarios[0].funcionario.contato = "(61) 9383 -6998";
empresa.funcionarios[0].funcionario.idade = 20;
empresa.funcionarios[0].funcionario.sexo = 'M';
/*
* f1.funcionario = new PessoaFuncionario(); f1.data = new
* DataFuncionarioEmpresa();
*
* f1.funcionario.nome = "Felipe Portela"; f1.funcionario.cpf =
* "000.111.222-34"; f1.funcionario.rg = "2.300.212";
* f1.funcionario.idade = 20; f1.funcionario.contato = "61 9581-6998";
* f1.funcionario.sexo = 'M'; f1.data.dataFuncionarioEmpresa(04, 05,
* 1994);
*/
// Passando os argumentos para os parâmetros esperado pelo método..
f1.salarioFuncionario(100.0);
f1.funcionarioRecebeAumento(50.0);
// exibe informações a seguir..
f1.exibeInformacoesGerais();
}
}
**
Erro: Exception in thread "main" java.lang.NullPointerException at PrimeirosPassosJAVA.ExerciciosJAVA.OrientacaoObjetos.Funcionario2_Main.main(Funcionario2_Main.java:21)
** O que posso melhorar? o que estou fazendo de errado? Grato.