Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro NullPointerException

Estava praticando o que vi nas aulas e recebi o seguinte erro quando fui rodar meu programa.

public class TestaConcecionaria {

    public static void main(String[] args) {
        Carro c1 = new Carro();
        c1.Emplacamento();
        c1.getDescricaoDoVeiculo().setAnoDeFabricacao(2010);
        c1.getDescricaoDoVeiculo().setCor("prata");
        c1.getDescricaoDoVeiculo().setMarca("fiat");
        c1.getDescricaoDoVeiculo().setModelo("palio");

        System.out.println(c1.getDescricaoDoVeiculo().getAnoDeFabricacao());
        System.out.println(c1.getDescricaoDoVeiculo().getCor());
        System.out.println(c1.getDescricaoDoVeiculo().getMarca());
        System.out.println(c1.getDescricaoDoVeiculo().getModelo());


    }

}

public abstract class Veiculo {

    private Descricao descricaoDoVeiculo;
    private double valor;

    public void Emplacamento() {
        System.out.println("O veiculo foi emplacado!");
    }

    public void setValor(double valor) {
        this.valor = valor;
    }

    public double getValor() {
        return valor;
    }

    public Descricao getDescricaoDoVeiculo() {
        return descricaoDoVeiculo;
    }

    public void setDescricaoDoVeiculo(Descricao descricaoDoVeiculo) {
        this.descricaoDoVeiculo = descricaoDoVeiculo;
    }


}

public class Descricao {
    String cor;
    String modelo;
    String marca;
    int anoDeFabricacao;
    public String getCor() {
        return cor;
    }
    public void setCor(String cor) {
        this.cor = cor;
    }
    public String getModelo() {
        return modelo;
    }
    public void setModelo(String modelo) {
        this.modelo = modelo;
    }
    public String getMarca() {
        return marca;
    }
    public void setMarca(String marca) {
        this.marca = marca;
    }
    public int getAnoDeFabricacao() {
        return anoDeFabricacao;
    }
    public void setAnoDeFabricacao(int anoDeFabricacao) {
        this.anoDeFabricacao = anoDeFabricacao;
    }


}


public class Carro extends Veiculo implements CalculaImposto {

    @Override
    public double ipva() {
        return super.getValor() + (super.getValor()*0.05);
    }



}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Acho que é porque você não inicializou nenhum objeto Descricao (), ou seja não instanciou com o comando new. Acho que se você criar o construtor do Veiculo instanciando o objeto Descrição deve dar certo, tipo assim:

public Veiculo() { this.descricaoDoVeiculo = new Descricao(); }

exatamente era esse o problema, consegui resolver obrigado