Vantagem de usar um construtor que chama outro?

Pessoal,

Vantagem de usar um construtor que chama outro?
Como nesse exmplo?

public class Carro {
	String modelo;
	int velocidadeMaxima;
	double segundosZeroACem;
	Motor motor;
	
	
	//Construtor padrão de Carro.
	public Carro() {
		
	}
	
	//Construtor que chama outro construtor.
	public Carro(String modelo, int velocidadeMaxima, double segundosDeZeroACem) {
		this(modelo, velocidadeMaxima, segundosDeZeroACem, null);
	}

	//Outro construtor.
	public Carro(String modelo, int velocidadeMaxima, double segundosDeZeroACem, Motor motor) {
		this.modelo = modelo;
		this.segundosZeroACem = segundosDeZeroACem;
		this.velocidadeMaxima = velocidadeMaxima;
		this.motor = motor;
	}
}
  1. Escrever um código só;
  2. Dar ao programador que usa a classe Carro mais de uma opção.

Reaproveitamento de código. Se você não tivesse chamado o outro construtor, teria que ter feito assim:

[code]public class Carro {
String modelo;
int velocidadeMaxima;
double segundosZeroACem;
Motor motor;

//Construtor padrão de Carro.
public Carro() {
	
}

//Construtor que chama outro construtor.
public Carro(String modelo, int velocidadeMaxima, double segundosDeZeroACem) {
	this.modelo = modelo;
	this.segundosZeroACem = segundosDeZeroACem;
	this.velocidadeMaxima = velocidadeMaxima;
	this.motor = null;
}

//Outro construtor.
public Carro(String modelo, int velocidadeMaxima, double segundosDeZeroACem, Motor motor) {
	this.modelo = modelo;
	this.segundosZeroACem = segundosDeZeroACem;
	this.velocidadeMaxima = velocidadeMaxima;
	this.motor = motor;
}

}
[/code]

Isso ajuda a simplificar um pouco o código.

Então seria assim.

Eu declaro vários construtores e os chamo no construtor “padrão”, assim eu posso chama todos os construtores declarados noconstrutor padrão se eu desejar. Meu pensamento está correto? No caso meu entendimento.

Veja da seguinte forma. Você pode ter um construtor que recebe 4 parâmetros e ter um que recebe 3. A função do construtor que recebe 3 parâmetros é chamar o que recebe 4 passando um valo padrâo para um dos parâmetros. Isso é o que o seu código faz.

Ok!
Obrigado pela explicação!
E uma sugestão para o melhoramento do GUJ, seria bom se a galera implementasse algo assim: quando se inicia um novo tópico ou uma resposta, o curso ficasse no local padrão do título ou da resposta. Economizaria um clique. O que acham?
Sabemos que hoje em dia um clique faz tora a diferença :wink:

Grande abraço!

Assim como faz o GUJ Perguntas?
http://www.guj.com.br/perguntas

Isso, eu cliquei em adicionar um omentário e o cursor ficou automaticamente no local para eu escrever o comentário. :slight_smile: