Segue código abaixo::
package supermercado;
import java.util.*;
public class Supermercado {
public Supermercado() {
}
public static void main(String[] args)
{
int qtd, qtdProd;
String data;
Scanner in = new Scanner(System.in);
qtd = Integer.parseInt(in.nextLine()); // qtos produtos serão comprados (leite + arroz = 2 produtos)
data = in.nextLine();
Compra comp = new Compra(data, qtd);
qtdProd = Integer.parseInt(in.nextLine()); //qtde de cada produto( qtos leites, qto arroz)
comp.insereProdutos(qtdProd);
}
}
import java.util.*;
public class Compra {
//ATRIBUTOS
private String dataCompra;
Produto[] prod;
int[] qtdeProduto;
static int num;
int i = 0;
//CONSTRUTOR
public Compra(String data, int qtd){
setDataCompra(data);
this.num = qtd;
}
//PROPRIEDADES
public String getDataCompra(){
return dataCompra;
}
public void setDataCompra(String dataCompra) {
this.dataCompra = dataCompra;
}
//MÉTODOS
public void insereProdutos(int qtd){
Scanner en = new Scanner(System.in);
prod = new Produto[num];
qtdeProduto = new int[num];
if(i<num){
prod[i].setDescricao(en.nextLine());
prod[i].setPreco(Double.parseDouble(en.nextLine()));
prod[i].setTipo(en.nextLine().charAt(0));
qtdeProduto[i] = qtd;
i++;
}
}
}
public class Produto {
//ATRIBUTOS
private String descricao;
private char tipo;
private double preco;
//CONSTRUTOR
public Produto(String descricao, char tipo, double preco) {
setDescricao(descricao);
setTipo(tipo);
setPreco(preco);
}
//PROPRIEDADES
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public char getTipo() {
return tipo;
}
public void setTipo(char tipo) {
this.tipo = tipo;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
}
pessoal quando eu rodo ta dando esse erro:
“Exception in thread “main” java.lang.NullPointerException
at supermercado.Compra.insereProdutos(Compra.java:40)
at supermercado.Supermercado.main(Supermercado.java:24)”
erro é nessa linha:
prod[i].setDescricao(en.nextLine()); da classe compra