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.