Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Valor padrão do atributo

Inicializar o atributo no construtor não seria a mesma coisa que inicializar o atributo com um valor padrão na classe?

Isso...

 //Novo construtor AQUI!
    public Carro(String modelo, double preco){
        this.ano = 2017;
        this.modelo = modelo;
        this.preco = preco;
    }

Seria o mesmo que isso?

public class Carro{
    private int ano = 2017;
    private String modelo;
    private double preco;

    //getters e setters omitidos 
}
1 resposta
solução!

Oi Laura, tudo bem?

Não há diferença. Em Java todos os inicializadores de atributo de instância são executados após a inicialização da superclasse e antes do corpo do construtor. A diferença está na legibilidade do código e (em outros exemplos) em evitar codificação repetitiva. Também é importante notar que existem alguns casos em que você precisa inicializar no construtor; ou seja, quando a inicialização depende de um parâmetro do construtor. Nos casos em que pode ser que ocorra uma exception é recomendado fazer pelo construtor.