Método construtor tem que ter a primeira letra maíuscula igual a classe?

Tenho uma classe que se chama “Teste”, o método construtor obrigatoriamente tem que se chamar “Teste” ou “teste” também é válido?

tem que ser igual, caso contrário, você irá criar uma função.

Exemplo:


public class Pessoa {

public Pessoa() { //construtor

}

public pessoa() { //seria uma função

}

}

método construtor tem que ser maiúsculo igual o nome da classe.

Minha dúvida nisso é porque eu tentei das duas maneiras, e o código funcionou do mesmo jeito, será que é porque o compilador já subentende que aquilo é um método construtor, por ter compilando anteriormente com maiúscula?

package model;

import model.DAO.UsuarioDAO;

public class Usuario {
private String nome;
private String login;
private String senha;

public Usuario() { //Faz referencia ao super da Super Classe java object.
	super();
}

public Usuario(String nome, String login, String senha) {  //Metodo contrutor padrão.
	super();
	this.nome = nome;
	this.login = login;
	this.senha = senha;
}

}

Todo metodo construtor têm que ter a primeira letra maiuscula igual a classe. Um metodo começando com letra minuscula teria que ter um retorno void ou de algum tipo, por exemplo:

public void menu() { // Este metodo não precisa de retourno de valor.

	System.out.println("} 1 - Efetuar Login: ");
	System.out.println("} 2 - Cadastrar usuário do sistema: ");
	System.out.println("} 3 - Entrada do veículo: ");
	System.out.println("} 4 - Saída do veículo: ");
	System.out.println("} 5 ->>Sair do sistema<<-");
}

public static Entrada buscaInfo() { // metodo estático precisa de um retorno, neste caso está retornando um objeto instânciado por uma classe. e a primeira letra maiuscula pois é um metodo estático da classe criada com o nome Entrada. E não um metodo construtor.
Entrada entrada = null;

		entrada = new Entrada();

	return entrada;
}

public boolean nomeMetodo(){ // metodo boolean que retorna um valor verdadeiro. Primeira letra minuscula.

return true;

}

O computador não sub-entende nada. Essa classe:

public class Teste { public teste() { } }
Gerará esse erro na saída:

Teste.java:2: error: invalid method declaration; return type required public teste() { ^ 1 error

Como o JuniorMaia explicou, com a letra minúscula o compilador acha que é uma função comum, e reclama que está faltando o tipo de retorno.

fredsi, por favor, ao postar códigos, siga essas dicas:

Além disso, diga qual é o propósito desse seu código.