Bom dia! Tudo bem?
Quando uso esse código abaixo e chamo o Construtor Carro(String modelo, double preco) quer dizer que sempre transformará em Carro(2017, String modelo, double preco)?
Outra dúvida ele chama o Construtor Carro(int ano, String modelo, double preco) porque chamei this(int ano, String modelo, double preco), correto?
Nunca poderei ter dois Construtor com os mesmo campos, correto? Ele sobre-escreve de cima para baixo?
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
}