1.3.3.1
Métodos não são construtores quando possuem tipo de retorno
Um método que começa com letra maiúscula e possui o mesmo nome da classe não é um construtor se declarar um tipo de retorno. A presença de um tipo de retorno faz com que o compilador trate esse elemento como um método comum, independentemente do nome utilizado.
Exemplo conceitual
public class User {
public void User() {
}
}
Explicação linha a linha
public class User {
Declara a classe User.
public void User() {
Declara um método comum chamado User. Apesar de o nome coincidir com o nome da classe, a presença do tipo de retorno void impede que ele seja tratado como um construtor.
}
Encerra o método.
}
Encerra a definição da classe.
Esse caso pode causar confusão para iniciantes, mas o compilador distingue construtores de métodos exclusivamente pela ausência de tipo de retorno, não pelo uso de letras maiúsculas ou pela posição no código.