Cara,
Na verdade isso é bem simples.
Se você somente precisa que um método “faça algo” você usa uma função sem retorno.
Agora se você precisa de um método que" faça algo e te traga uma resposta"(pode ser o resultado de uma operação, uma confirmação de verdadeiro ou falso ou qualquer coisa do tipo), esse método precisa de um retorno.
Exemplos:
Class Teste
{
int c = 0;
//função sem retorno
void soma1(int a, int b)
{
c = a + b; // observe que este método soma os valores de a e b e atribui estes valores à variável c, nada mais.
}
//retorna um inteiro
int soma2(int c, int d)
{
return = c + d;// este método soma os valores de entrada e retorna este resultado, possibilitando que você use o mesmo para o que precisar.
}
//retorna um boolean
boolean soma3(int e, int f)
{
if(e+f < 10) // se soma das entradas menor que 10 retorna verdadeiro.
{
return true;
}
else
{
return false; // senão retorna falso.
}
}
}
Assim veja abaixo o que você pode fazer, sabendo o que um método retorna.
Executando o método soma1 ele apenas executará o arquivo no corpo do método, ou seja :
int c = soma1(2,3);//não compila pois não há um valor de retorno.
Já se você fizer o mesmo com o método soma2, veja:
int c = soma2(2,3);// o valor de c passa a ser 5, pois o método "soma2" soma suas entradas(2 e 3) e ainda retorna esse resultado.
Bem como:
int c = 5 * soma2(2,3);// o valor de c passa a ser 25, pois o método "soma2" soma suas entradas(2 e 3) e multiplica por 5.
Repare que esta atribuição(c = soma2) só funciona pois o método “soma2” retorna um inteiro(c+d == 2+3)
int c = soma3(2,3);// não compila pois não é possível atribuir um boolean a um inteiro ( c == soma3)
IMPORTANTE LEMBRAR
O return encerra o método
Como exemplo o método soma 3:
Se o valor for menor que 10 ele retorna na linha 25 e não passa pelas demais linhas no corpo do método.
Espero ter ajudado.