Olá galera sou novíssimo em java estou gostando bastante da forma de programar, mas me deparei com um probleminha que estou seguindo um exemplo da apostila da Caelum, muito bom por sinal, vejam ai o código e me digam se podem me ajudar, abaixo:
Funcionario.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package primeiraaplicacao;
/**
* objeto funcionario
* @author Marcos
*/
class Data{
int dia;
int mes;
int ano;
}
class Departamento{
int codigo;
String descricao;
}
public class Funcionario {
String nome;
int matricula;
double salario;
String admissao;
String rg;
String cpf;
boolean ativo;
Data datadeentrada;
Departamento departamento;
//aumento de salario
void aumentodesalario(double valor){
double novosalario = this.salario + valor;
this.salario = novosalario;
}
//demite um funcionario
void demitefuncionario(){
boolean demite = false;
this.ativo = demite;
}
void mostra(){
System.out.println("Funcionário : "+this.nome);
System.out.println("C.P.F : "+this.cpf);
System.out.println("Matricula : "+this.matricula);
System.out.println("Cod.Depto : "+this.departamento.codigo);
System.out.println("Departamento : "+this.departamento.descricao);
System.out.println("Salário : "+this.salario);
System.out.println("Dia: " + this.datadeentrada.dia);
System.out.println("Mês: " + this.datadeentrada.mes);
System.out.println("Ano: " + this.datadeentrada.ano);
}
}
Testafuncionario.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package primeiraaplicacao;
/**
*
* @author Marcos
*/
public class Testefuncionario {
public static void main(String args[]){
Funcionario funcmostra = new Funcionario();
Funcionario funcionario = new Funcionario();
Departamento dpto = new Departamento();
funcionario.departamento = dpto;
funcmostra.nome = "Marcos Duarte de Oliveira";
funcmostra.matricula = 3651;
funcmostra.salario = 2110.00;
funcmostra.admissao = "02/05/1992";
funcmostra.rg = "925 688";
funcmostra.cpf = "[CPF removido]";
funcmostra.ativo = true;
funcionario.departamento.codigo = 1;
funcionario.departamento.descricao = "Coordenadoria de Habitacao";
//mostra display dados dos funcionarios
funcmostra.mostra();
// aumento de salario do funcionario
funcionario.aumentodesalario(300.00);
System.out.println("Salário Atual: "+funcionario.salario);
//demitindo funcionario
funcionario.demitefuncionario();
if (funcionario.ativo){
System.out.println("Funcionario Ativo");
}else{
System.out.println("Funcionario Demitido");
}
Funcionario f1 = new Funcionario();
Data data = new Data();
f1.datadeentrada = data;
f1.nome = "Fiodor";
f1.salario = 100;
f1.datadeentrada.dia = 2;
f1.datadeentrada.mes = 5;
f1.datadeentrada.ano = 1992;
Funcionario f2 = f1;
f2.nome = "Fiodor";
f2.salario = 100;
if(f1 == f2) {
System.out.println("iguais");
} else {
System.out.println("diferentes");
}
}
}
o erro “Exception in thread “main” java.lang.NullPointerException
at primeiraaplicacao.Funcionario.mostra(Funcionario.java:48)
at primeiraaplicacao.Testefuncionario.main(Testefuncionario.java:33)
Java Result: 1”
acontece na seguinte linha do funcionario.java
System.out.println("Cod.Depto : "+this.departamento.codigo);
pessoal como posso resolver, obrigado aqueles que tentarem me ajudar.
