Olá pessoal! Estou testando um pouco meus conhecimentos tentando criar um sisteminha de vendas em que tenho uma classe Mercadoria e uma classe Venda. Ao testar uma venda recebo um Null Pointer Exception no método extrato(), que deveria imprimir os dados do objeto mercadoria e da venda. Abaixo estão as classes e minha classe main. Eu compreendo que o método não está apontando para o objeto Mercadoria criado na venda, mas não consegui entender o que estou fazendo errado! Alguém pode dar uma ajuda? Valeu!
public class Mercadoria {
private String codigo;
private String tipo;
private String nome;
private double quantidade;
private double preco;
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getQuantidade() {
return quantidade;
}
public void setQuantidade(double quantidade) {
this.quantidade = quantidade;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public String getCodigo(){
return this.codigo;
}
}
public class Venda {
private double valorTotal;
private double unidades;
private Mercadoria mercadoria;
public Venda(Mercadoria mercadoria, double unidades) {
}
public void venda(double unidades) {
this.valorTotal = unidades * this.mercadoria.getPreco();
this.mercadoria.setQuantidade(unidades -= this.mercadoria.getQuantidade());
}
public void extrato() {
System.out.println("Extrato de venda: ");
System.out.println("Produto: " + this.mercadoria.getNome());
System.out.println("Código do produto: " + this.mercadoria.getCodigo());
System.out.println("tipo: " + this.mercadoria.getTipo());
System.out.println("quantidade: " + this.unidades);
System.out.println("Valor da transação: " + this.valorTotal);
}
}
Main:
public class TesteTrasacao {
public static void main(String[] args){
Mercadoria chuveiro = new Mercadoria();
chuveiro.setNome("Chuveiro");
chuveiro.setPreco(10);
Venda v1 = new Venda(chuveiro, 5);
v1.extrato();
}
}