O que acontece, você tem 3 tipos de métodos no java: construtores, métodos vazios e métodos que retornam algo.
Os construtores são necessários para construir os objetos de uma determinada classe
public class Foo {
public Foo(){}
}
Eles não possuem nenhuma indicação de tipo de retorno e tem o mesmo nome da classe.
Temos os métodos que não retornam nada, ou seja, os void
public void ola(){
//Alguma coisa aqui
}
Estes métodos nunca terão um return ou terão um return como abaixo
public void ola(){
//Alguma coisa aqui
return; //sem informar nada no return, ou seja, retorna vazio
}
Por fim, temos os métodos que retornam algo. Que algo é esse? Depende do que você informa que o método devolve
public int soma(int n1, int n2) {
//alguma coisa aqui
return 0;
}
public String criaMsg(String info) {
//alguma coisa aqui
if(null != info) {
return "A mensagem é: " + info;
}
return null;//Retorna null pois null é diferente de vazio e um objeto pode suportar null. Nunca verá isso num método que devolve primitivos
}
E assim por diante.
Ficou mais claro?