Havia dois construtores e eles tinham seus if e else em cada atributo, menos o segundo em ano porque 2017 é estático, até ai ok!
public class Carro{
private int ano;
private String modelo;
private double preco;
public Carro(int ano, String modelo, double preco){
if(ano >= 1891){
this.ano = ano;
}else{
System.out.println("O ano informado está inválido. Por isso usaremos 2017!");
this.ano = 2017;
}
if( modelo != null){
this.modelo = modelo;
}else{
System.out.println("O modelo não foi informado. Por isso usaremos Gol!");
this.modelo = "Gol";
}
if(preco > 0){
this.preco = preco;
}else{
System.out.println("O preço não é válido. Por isso usaremos 40000.0!");
this.preco = 40000.0;
}
}
//Novo construtor AQUI!
public Carro(String modelo, double preco){
this(2017, modelo, preco);
}
//getters e setters omitidos
}
Então agora foi colocado os atributos do segundo construtor em uma linha só. Eu só não entendi como as necessidades dos atributos ( modelo não ser nulo e preço não ser menor que zero) feitos com os ifs, foram mantidos no segundo construtor ou não foram mantidos? Ou então ele estaria dentro do primeiro construtor? mas ainda sim eu não entendi muito bem.