E ai pessoal, tudo bem com vocês?
Podem me ajudar em uma dúvida aqui? Estou treinando o envolvimento de classes, inserindo uma na outra (inclusive umas delas possui Array) etc. Acontece que criei uma classe Data dataNascimento e criei dois comportamentos, quando declaro os parâmetros desse comportamento na minha classe main, compilo e executo a main, aparece um erro de Null Pointer Exception. O problema que não consigo ver o que estou fazendo de errado, pois o caminho parece claro e o comportamento também. Alguém me sugere alguma coisa ou pode me mostrar o erro? Sei que deve ser algo bem óbvio e bobo, mas sou muito leigo e estou tentando aprender o máximo que posso. Obrigado!
class Casa {
String endereco;
String numero;
String bairro;
Residente[] morador;
void imprimeMoradores () {
for(int i = 0; i < this.morador.length; i++){
Residente residente = this.morador[i];
Data data = this.morador[i].dataNascimento;
if(residente == null) continue;
System.out.println("\n" + "O morador " + residente.nome +
" de idade " + residente.idade + " e de CPF " + residente.cpf +
" e de salário " + residente.salario + ", residente no endereço " +
this.endereco + " de número " + this.numero + " do bairro " +
this.bairro + ". Este residente recebe um saláro anual de " +
residente.calculaGanhoAnual() + "\n" + data.mostraData());
}
}
}
class Residente {
String nome;
int idade;
Data dataNascimento;
String cpf;
double salario;
double calculaGanhoAnual(){
return this.salario * 12;
}
}
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 mostraData(){
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
class TestaCasa{
public static void main(String [] args){
Casa c1 = new Casa();
c1.morador = new Residente[10];
c1.endereco = "Av Miguel Perrela";
c1.numero = "115";
c1.bairro = "Castelo";
c1.morador[0] = new Residente();
c1.morador[0].nome = "Diego";
c1.morador[0].idade = 27;
c1.morador[0].dataNascimento.preencheData(28, 01, 1991);
c1.morador[0].cpf = "123";
c1.morador[0].salario = 3500.0;
c1.morador[1] = new Residente();
c1.morador[1].nome = "Jéssica";
c1.morador[1].idade = 29;
c1.morador[1].dataNascimento.preencheData(13, 11, 1988);
c1.morador[1].cpf = "456";
c1.morador[1].salario = 3500.00;
c1.imprimeMoradores();
}
}