I'm developing a program in java, I've looked at several places to know what I'm missing, everyone said that my variables are getting null value, but I already tried instantiating values in it, using methods, but nothing.
The error is this "Exception in thread" main "java.lang.NullPointerException at pub.Pub.main (Pub.java:18) ".
Can anyone help?
package pub;
public class Pub {
public static void main(String[] args) {
Pessoa p = new Pessoa();
Funcionario f = new Funcionario();
f.nome = "asd";
f.cargo = "Bartender";
f.alteraSalario(950);
f.idade = 17;
Musico m = new Musico();
m.nome = "Aldair";
m.idade = 19;
m.instrumento = "Violon";
m.banda.nomeBanda = "Aldair Playboy";
m.banda.descricao = "Lorem ipsun";
m.banda.genero = "Forró";
m.banda.show.data = "07/05/2018";
m.banda.show.hora = "23:59";
System.out.println(p.Pessoa(f));
System.out.println(p.Pessoa(m));
}
}
Here are the other classes:
Person.java
package pub;
public class Pessoa {
public String nome;
public int idade;
public String Pessoa(Funcionario pessoa){
return "Nome:" + pessoa.nome + "\n" +
"Idade:" + pessoa.idade + " " + pessoa.retornaIdade() + "\n" +
"Cargo:" + pessoa.cargo + "\n" +
"Salario:" + pessoa.retornaSalario();
}
public String Pessoa(Musico pessoa){
return "Nome:" + pessoa.nome + "\n" +
"Idade:" + pessoa.idade + " " + pessoa.retornaIdade() + "\n" +
"Instrumento:" + pessoa.instrumento + "\n" +
"Banda:" + pessoa.banda.nomeBanda + "\n" +
"Genero:" + pessoa.banda.genero + "\n" +
"Descrição:" + pessoa.banda.descricao + "\n" +
"Data/Hora:" + pessoa.banda.retornaData();
}
}
Musico.java
package pub;
public class Musico extends Pessoa {
public String instrumento;
public Banda banda;
public String retornaIdade() {
if(idade < 18){
return "Menor de idade!!";
}else{
return "OK!!";
}
}
@Override
public String Pessoa(Musico pessoa){
return "Nome:" + pessoa.nome + "\n" +
"Idade:" + pessoa.idade + " " + pessoa.retornaIdade() + "\n" +
"Instrumento:" + pessoa.instrumento + "\n" +
"Banda:" + pessoa.banda.nomeBanda + "\n" +
"Genero:" + pessoa.banda.genero + "\n" +
"Descrição:" + pessoa.banda.descricao + "\n" +
"Data/Hora:" + pessoa.banda.retornaData();
}
}
Band.java
package pub;
public class Banda {
public String nomeBanda;
public String genero;
public String descricao;
public Show show;
public String retornaData(){
return show.data + " " + show.hora;
}
}
Show.java
package pub;
public abstract class Show {
public String hora;
public String data;
public abstract String retornaData();
}