posteriores.void: e um tipo de retorno "vazio". Isto significa dizer que o metodo imprimir() nao retornara nenhum valor. Entraremos em detalhes sobre os tipos de retorno adiante.imprimir: identificador do metodo. E atraves do identificador que um metodo pode ser chamado. Por exemplo, para o metodo imprimir ser chamado teriamos o seguinte codigo deve ser chamado:imprimir();(): dentro dos parenteses devem ser informados quais parametros o metodo requer para que possa ser chamado. No caso do metodo imprimir(), nenhum parametro foi informado.Tipos de retornoUm metodo pode retornar valores tanto do tipo primitivo quanto valores do tipo referencia. Alem desses tipos, um metodo pode retornar um valor especial, que representa "vazio". Tal valor e representado pela palavra-chave void. Caso o tipo de retorno NAO seja void, a palavra-chave return deve ser chamada. Esta palavra-chave encerra o metodo e retorna o valor desejado.Embora um metodo possa conter mais de uma instrucao return, apenas uma das instrucoes return sera chamada (a primeira que o compilador encontrar, dependendo do fluxo de execucao). Isso quer dizer que um metodo so retorna um valor a cada vez que ele e chamado.Retornando voidQuando na declaracao de um metodo esta definido que ele retornara void, isso implica em dizer que tal metodo nao retornara valor algum. Qualquer tentativa de retorno de valor causara um erro de compilacao. Observe um exemplo valido de um metodo com tipo de retorno void:public void imprimeNomes(){ System.out.println("Java"); System.out.println("Imediato"); System.out.println("Seu tutorial Java");}Caso alguma tentativa de retorno ocorra, o compilador acusara um erro. Observe este exemplo:public void imprimeNomes(){ System.out.println("Java"); System.out.println("Imediato"); System.out.println("Seu tutorial Java"); //retorno return 40;}O seguinte erro sera acusado pelo compilador:Exception in thread "main" java.lang.Error: Unresolved compilation problem: Void methods cannot return a valueQuando o tipo de retorno do metodo e void, a instrucao return pode ser utilizada para finalizar o metodo, mas nao para retornar um valor. Observe este exemplo:public void imprimeNomes(){ System.out.println("Java"); System.out.println("Imediato"); System.out.println("Seu tutorial Java"); return;}Este codigo esta livre de erros. Quando o compilador ler a instrucao return, ele vai simplesmente finalizar o metodo. Nenhuma acao funcional ocorrera. Porem, se voce inserir neste metodo alguma instrucao abaixo do return, o compilador lhe exibira a seguinte mensagem:Exception in thread "main" java.lang.Error: Unresolved compilation problem: Unreachable codeIsto quer dizer que ha codigos no metodo que nao podem ser alcancados. Isto ocorre porque o return finaliza o metodo, desde ja nao faria sentido para o compilador existir instrucoes que nao serao alcancadas dentro do metodo.Retornando Tipos PrimitivosComo visto no Post 11, os tipos primitivos sao:* char* byte* short* int* long* float* double* booleanDesde ja um metodo pode retornar qualquer um desses tipos de acordo com sua finalidade. Observe este metodo que calcula a soma de 5 + 10:public int somar(){ return 5 + 10;}Note que a soma 5+10 retorna um numero inteiro: 15. Logo, nao seria viavel, por exemplo, definir void como tipo de retorno do metodo somar() . Isto causaria o seguinte erro de compilacao:Exception in thread "main" java.lang.Error: Unresolved compilation problem: Void methods cannot return a valueObserve agora o metodo a seguir. Ele retorna um valor do tipo boolean:public boolean retornarVerdadeiro(){ return true;}Qualquer outro valor retornado