Boa noite, tive dúvidas em como passar um array de um construtor em outra classe, segue abaixo as três classes utilizadas. O objetivo é calcular o IMC de um conjunto de pessoas (ainda está na metade do código, pois parei nessa dúvida). No total são três classes, um para os dados de cada pessoa, outra para a instituição e outra para “juntar” as duas.
public class Pessoasatt {
String nome;
String sexo;
long cpf;
float peso;
float altura;
}
public class Instituicao {
public int num=2;
String nome;
long cnpj;
Pessoasatt p[]=new Pessoasatt[num];
Instituicao(String nome, long cnpj){
this.nome=nome;
this.cnpj=cnpj;
this.p=new Pessoasatt[num];
}
}
E abaixo veio minha dúvida na realização do código:
public class Ex3att {
public static int num=2;
static String nome;
static long cnpj;
static Scanner input=new Scanner(System.in);
static Instituicao insti=new Instituicao(nome,cnpj);
public static void main(String[] args) {
System.out.println("\t****Sistema de IMC***\n");
System.out.println("\nInforme o nome da Empresa: ");
insti.nome=input.nextLine();
System.out.println("Informe o CNPJ:");
insti.cnpj=input.nextLong();
for(int i=0;i<num;i++) {
System.out.println("Informe o nome da pessoa: ");
insti.p[i].nome=input.nextLine();
}
}
}
Quando peço para pegar o nome da pessoa dá esse erro:
Exception in thread "main" java.lang.NullPointerException
at exerciciosTreino/exerciciosStruct.Ex3.Ex3att.main(Ex3att.java:20)
Me ajudem por favor, pois comecei em c há um tempo e comecei com java por agora.