mais uma duvida do newba!!!
Na apostila da caelum, ela pede pra criar um sistema para gerenciar os funcionarios do Banco J da seguinte forma:
-
Modele um funcionario. Ele deve ter nome, departamento, salario, data de entrada no banco, seu rg (String), e um valor booleano que indique se ele está na empresa no momento ou se já foi embora.
-
Crie os métodos bonifica, que aumenta o salario do funcionario de acordo com o parametro passado como argumento. Crie também um método demite que não recebe parâmetro algum, só modifica o valor booleano indicando que o funcionário não trabalha mais aqui.
-
Crie um método mostra(), que não recebe nem devolve parâmetro algum, simplesmente imprime todos os atributos do nosso funcionário.
4) Crie a classe chama Data para a data de ingresso no banco. Ela possui 3 campos int para dia, mes e ano. Faça com que seu funcionário passe a usa-la.
minha duvida está no ítem 4, mas nao sei se o problema é por causa dele…
criei o seguinte código:
[code]
class Data {
int dia;
int mes;
int ano;
}
class Funcionario {
String nome;
String depto;
double salario;
String dataEntrada;
String rg;
String status;
boolean permanece = true;
Data data;
void bonifica(double valor) {
this.salario += valor;
}
void demite() {
permanece = false;
}
void mostra() {
System.out.println("Nome:" + this.nome);
System.out.println("Depto: " + this.depto);
System.out.println("Salario: " + this.salario);
System.out.println("Data de Ingresso: ");
System.out.println("Dia: " + this.data.dia);
System.out.println("Mes: " + this.data.mes);
System.out.println("Ano: " + this.data.ano);
System.out.println("RG: " + this.rg);
if(permanece = true) {
status = "Ativo";
}
else {
status = "Afastado";
}
System.out.println("Status:" + this.status);
}
}
class Teste {
public static void main(String [] args) {
Funcionario funcionarioA;
funcionarioA = new Funcionario();
funcionarioA.data.dia = 20;
funcionarioA.data.mes = 10;
funcionarioA.data.ano = 1999;
funcionarioA.nome = "Joao Pinto";
funcionarioA.depto = "Caixa";
funcionarioA.salario = 1100;
funcionarioA.rg = "33015750-4";
funcionarioA.permanece = true;
funcionarioA.mostra();
Funcionario funcionarioB;
funcionarioB = new Funcionario();
funcionarioB.data.dia = 2;
funcionarioB.data.mes = 9;
funcionarioB.data.ano = 1992;
funcionarioB.nome = "Christian Eland";
funcionarioB.depto = "Presidente";
funcionarioB.salario = 25000;
funcionarioB.rg = "33015200-4";
funcionarioB.permanece = true;
funcionarioB.mostra();
}
} [/code]
Ela compila, mas quando executo Java Teste recebo a seguinte mensagem:
Exception in thread “main” java.lang.NullPointerException
at Teste.main(Funcionarios.java:52)
ALGUEM SABE??? Obrigado!