Solucionado (ver solución)

Importante

Estás viendo la versión anterior de la nueva experiencia de Alura que estamos preparando para ti. Pronto tendrá una identidad visual completamente nueva, pensada para potenciar tus estudios.

Solucionado
(ver solución)
2
respuestas

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 respuestas
solución!

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